求批量压缩多个文件夹到独立的文件批处处理 Bat

如题,例如,我想将123这个文件夹内的100多个子文件夹,批量压缩到独立的文件中。要求各个压缩后的文件名是文件夹的名称+几个统一的文字(例如这样:压缩test这个文件夹后,的rar文件名是test-myfiles.rar)
同时希望压缩后,并自动删除源文件。还有就是,等所有的文件都压缩好后,将123这个文件夹内的所有rar文件上传到远程FTP服务器。
谢谢! 望各位网友帮助,谢谢!
再求几段代码:
如果我的123文件夹下有许多rar和zip文件,我想批量从这些文件里面只提取特定的文件,例如只将jpg和html,php文件解压出来到独立的文件夹中。这样就不用全部解压这些rar和zip文件,只要我想要的。

我想将桌面的一张图片批量复制到 桌面123文件夹里所有文件里,包括子目录。
求以上的bat文件。谢谢!

@echo off
for /f "skip=2 tokens=4 delims= " %%a in ('dir^|findstr /i "DIR"') do (
    winrar a -df %%a-myfiles.rar %%a
)
echo open IP>>ftp.txt
echo username>>ftp.txt
echo password>>ftp.txt
echo lcd x:\123>>ftp.txt
echo cd x\x>>ftp.txt
echo prom>>ftp.txt
echo mput *>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt

 

利用winrar(没有自行下载,好压压缩也可以,但命令不太一样)for 语句负责压缩并删除源文件,按你的要求,压缩包命名规则为,   文件夹名-myfiles.rar

 

后边的部分上传到ftp服务器,地址根据实际情况自己改一下。

 

有不明白就追问。。

追问

你好的,这段代码无法正确运行。我的系统是windos 2008R2.

还有的新建的ftp.txt里面的内容要怎么写?能否做详细的说明?

追答

1、首先这个批处理是要放在123文件夹内执行
2、楼主提供一下dir|findstr /i "DIR" 回显截图
3、ftp.txt 内容:
根据上面那个代码:IP 改成你FTP服务器的IP
username 是你的帐号
password 是你的密码
lcd x:\123 切换本地目录,x是你盘符
prom 确认开关
cd x\x 进入你ftp文件夹
mput 上传所有刚刚打包好的rar
bye 离开
由于我目前没有win2008 server 测试环境,所以需要你提供截图。。。你用cmd 然后输入dir|findstr /i "DIR" 截图给我

追问


还有,我是放在目标文件

我重新试了 还是不行;对于“cd x\x 入你ftp文件夹"这项 我是进入根目录就可以了,是不是 

直接写 \ 就可以了?“lcd x:\123 切换本地目录,x是你盘符”这句要保留 lcd吗?还是直接写路径就可以了。谢谢!

追答

你装的是winrar软件吗?

server2008R2 和 win7的 回显不太一样。而且不知道你winrar软件是否正确。是否添加了环境变量,这些东西写这也不知道你能不能看懂。
你要愿意就发个QQ ,我帮你远程解决看看。。估计问题不大。

对于ftp这块。
cd \
lcd d:\123

上面lcd 不能少。lcd是切换本地路径的指令。

追问

我的winrar,是将winrar.exe移到了windows system 64这个文件夹里,不过我将它移动回去了还是不行。要不你帮我看看这个http://zhidao.baidu.com/question/581984958.html

追答

1、首先兄台你一直在强调代码无法运行,请问是在那一步不行?批处理运行马上就关闭?
还是运行了,123文件夹下所有文件夹没有被压缩。。

2、其次,建议你单独在cmd命令行下测试你的winrar命令行好不好使,当然前提设置好环境变量.
在cmd下,输入
pushd x:\123
winrar a -df 文件夹名-myfiles.rar 文件夹名 //-df是 winrar删除源文件意思 测试时建议不加
看是否有压缩包生成
3、我手头没有server2008 R2的测试环境。。。。

追问

你好是批处理运行马上就关闭,没有任何文嘉被压缩和上传。安装你的方法测试了不能成功

追答@echo off
for /f "skip=3 tokens=5 delims= " %%a in ('dir^|findstr /i "DIR"') do (
    winrar a -df %%a-myfiles.rar %%a
)
echo open IP>>ftp.txt
echo username>>ftp.txt
echo password>>ftp.txt
echo lcd x:\123>>ftp.txt
echo cd x\x>>ftp.txt
echo prom>>ftp.txt
echo mput *>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt

 

我到现在都不知道你服务器上到底添没添加winrar这个环境变量。。。。。。

根据你win2008系统 我改了几个参数。如果还不行,我真没办法了,尽力了。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-17
如果 “批处理运行马上就关闭” ,一定是有语法错误。

推荐排查错误的方法如下:
打开一个cmd窗口,cd到批处理所在文件夹,输入批处理文件名回车运行,这时就能看到错误提示,如果自己不能排查的话,发个截图上来。追问

你好,安你的方法测试了收到以下提示“
'winrar' is not recognized as an internal or external command,
operable program or batch file.
..........