[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理如何在指定文件名中文件夹限定后缀名,进行压缩并命名为指定名

本帖最后由 bluck2008 于 2013-6-3 02:30 编辑

相见恨晚!到了这把年纪才要开始接触批处理,以往在公司都使用鼠键选击,
现在年纪大了老眼昏花有时会有所遗漏。造成客户抱怨连连~
烦请各位高手亲临指教!谢谢您们~

--------------------------------------------------------------------------------------------------
条件:
1.要将指定文件的当前文件夹中的jpg与pngl后缀名
2.使用winrar进行压缩到d:\aaa
3.压缩包并命名为(指定文件名.rar)

※png的文件名((变数,每个资料夹只有一个))!
c的文件夹每次需要压缩的位置会改变((变数))
!

(每位摄影人员每次储存的位置的不同)

-------------------------------------------------------------------------------------------------
例如:
指定文件名为
c:\a15\d187\5678-20130527.png使用bat档执行
d187文件夹中的文件有:
只会将后缀名(jpg 和 png)进行winrar压缩
c:\a15\d187\5678-20130527-01.jpg
c:\a15\d187\5678-20130527-02.jpg
c:\a15\d187\5678-20130527-03.jpg
c:\a15\d187\5678-20130527-04.jpg
c:\a15\d187\5678-20130527-05.jpg
c:\a15\d187\5678-20130527-06.jpg
c:\a15\d187\5678-20130527.png

非jpg和png则排除
c:\a15\d187\5678-20130527-01.xml
c:\a15\d187\5678-20130527-01.doc

压缩到d:\aaa\5678-20130527.rar

有了批处理之家!解决生活麻烦事之家!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 apang 于 2013-5-27 10:34 编辑

假设winrar安装在c盘的program files目录下,路径自己改。
  1. @echo off
  2. md "d:\aaa" 2>nul
  3. pushd "c:\a15\d187\"
  4. "c:\program files\winrar\rar.exe" a "d:\aaa\5678-20130527.rar" "5678-20130527*.jpg" "5678-20130527*.png"
复制代码

TOP

本帖最后由 bluck2008 于 2013-5-28 02:29 编辑

回复 2# apang

※很感激apang上将热情帮忙※

可能是我没有条件没有设定清楚!很抱歉~上将
png的文件名((变数,每个资料夹只有一个))!
要压缩c的文件夹每次都会改变((变数))
!
(摄影人员每次储存的位置的不同)

例如有可能:
c:\c45\v256\6959-20130528.png
使用bat档执行

v256当前的文件夹中的文件有:

只会将后缀名(jpg 和 png)进行winrar压缩
c:\c45\v256\6959-15697-01.jpg
c:\c45\v256\6960-2527-02.jpg
c:\c45\v256\6961-4589-03.jpg
c:\c45\v256\6525-225795-04.jpg
c:\c45\v256\4598-58741.jpg
c:\c45\v256\5879-257866.jpg
c:\c45\v256\6959-20130528.png
.
.
.
.

而非jpg和png则排除
c:\c45\v256\accsbksus.xml
c:\c45\v256\a1561x5646.doc
c:\c45\v256\a1561x894.html
.
.
.
.

压缩到d:\aaa\(固定位置)
文件名:6959-20130528.rar(随着png的文件名而改变)

TOP

回复 3# bluck2008


   假设 png文件是以 数字-数字.png 这种形式命名
  1. @echo off
  2. md "d:\aaa" 2>nul
  3. for /f "delims=" %%a in ('dir/a-d/b/s c:\*.png^|findstr /i "\\[0-9]*-[0-9]*\.png"') do (
  4.     if not exist "d:\aaa\%%~na.rar" (
  5.         pushd "%%~dpa"
  6.         "c:\program files\winrar\rar.exe" a "d:\aaa\%%~na.rar" *.jpg "%%~nxa"
  7.         popd
  8.     )
  9. )
  10. pause
复制代码

TOP

本帖最后由 bluck2008 于 2013-6-2 22:58 编辑

回复 4# apang
apang上将这批处理只有"强"字可形容,它可以将C槽所有的png&jpg都打包到d:\aaa,佩服apang上将的bat功力!
突然发现了一个问题,公司每周都会固定清除d:\aaa文件夹的资料,假使执行bat又会重新压缩所png&jpg!而摄影人员每日储存的文件夹又非固定。
问题1:有方法实现:指定只针对单文件png右键bat执行,进行压缩该文件夹中的png&jpg到d:\aaa,并增加copy该png到d:\bbb。

问题2:已将findstr  /i  改成 findstr /s  :在当前目录和所有子目录中搜索匹配文件,也无法只针对该指定文件夹进行bat。

问题3:以下是初学不才的我在批处理之家参考别帖写的,将选定文件夹的png单独copy到d:\bbb~可以在单独指定png下执行!但要复制BAT到文件夹中方可执行!
※要如何修改才可以与apang大师写的BAT做完整结合呢?有方法点选该png直接右键选取此bat执行吗?
  1.     @echo off
  2.     set "src0=*.png"
  3.     for /f "delims=" %%a in ('dir /a-d /b /s "%src0%"') do (
  4.       for %%b in ("%%a\..") do copy "%%a" d:\bbb
  5.     )
复制代码
apang上将麻烦您再次协助,谢谢!

TOP

回复 5# bluck2008


    我不是大师啊
以下是可以拖拽的,将png文件用鼠标拖到批处理图标上,然后松开鼠标就可以啦
  1. @echo off
  2. md "d:\aaa" "d:\bbb" 2>nul
  3. if /i "%~x1"==".png" if not exist "d:\aaa\%~n1.rar" (
  4.     pushd "%~dp1"
  5.     "c:\program files\winrar\rar.exe" a "d:\aaa\%~n1.rar" *.jpg "%~nx1"
  6.     copy %1 "d:\bbb\" /y
  7. )
复制代码
1

评分人数

    • bluck2008: 谢谢apang上将一直以来热情协助,您的一小步 ...技术 + 1

TOP

回复 6# apang
谢谢apang上将一直以来热情协助,您的一小步,是便利生活的一大步!感激不尽~

TOP

返回列表