美文网首页
递归地对目录中的所有文件做同一操作 | DOS脚本

递归地对目录中的所有文件做同一操作 | DOS脚本

作者: 晏如V5 | 来源:发表于2016-11-09 23:00 被阅读454次

问题来源

曾经有一个师弟帮我做了一个简单的加密程序,是一个BAT文件,也就是下面代码中引用的CC.bat。现在,我想把D:\test目录下所有的文件,包括多级嵌套子目录的文件,都用这个程序来进行一次处理。该怎么做呢?


V1版本

源代码

set work_path=D:\test
D:
cd %work_path%
for /R %%s in (*) do (
echo %%s
call D:\BAT\CC.bat %%s
)
cd D:\BAT
pause

使用方法

  1. 在文本编辑器中输入上述代码,然后将文件保存为.bat文件,比如,try.bat
  2. 在cmd窗口中输入,try.bat即可执行。

测试结果

  • WinXP
    部分可用,对于较长串的文件名有Bug

TODO

将上例中的work_path改为命令行参数形式


V2版本

考虑到大家已经不喜欢cmd窗口了,我决心把上面的脚本改造成为一个可在窗口中双击启动的版本。

源代码

for /R %%s in (*) do (
echo %%s
call D:\\CC.bat %%s  
)
pause
备注

至于为什么要将CC.bat放在一个绝对路径下面,是因为CC.bat本身的原因,不能与 try.bat放在同一个目录下。

使用方法

  1. 在文本编辑器中输入上述代码,然后将文件保存为.bat文件,比如,try.bat
  2. try.bat拷贝到你想要操作的那个文件夹。
  3. 双击try.bat即可对当前目录及其子目录中的所有文件做同一操作。

测试结果

  • WinXP
    部分可用,对于较长串的文件名有Bug

TODO

不知道DOS脚本是否支持正则表达式,应该借助正则表达式将这个脚本更新为只对某些类型的文件做操作。


灵感来源

感想

天下代码一大抄,为我所用即为高,_

相关文章

网友评论

      本文标题:递归地对目录中的所有文件做同一操作 | DOS脚本

      本文链接:https://www.haomeiwen.com/subject/kmptpttx.html