本帖最后由 pcl_test 于 2016-11-21 23:50 编辑
在管道符后面使用 do
问题:在文件夹 E:\test\9月\ 里包含有 9 月和 10 月的 xls 文件,现在我想把 10 月份的文件移动到 E:\test\10月\ 下面... (注:是以文件内容来判断月份)
首先,我打开命令提示符,试着用 findstr 把文件找出来:
E:\test\9月>findstr /m /i /c:"Date: Oct" *.xls
19006872(4) + 19007130(4).xls
19007130(1).xls
19007130(10).xls
19007130(11).xls
19007130(12).xls
19007130(13).xls
19007130(14).xls
19007130(2).xls
19007130(3).xls
19007130(5).xls
19007130(6).xls
19007130(7).xls
19007130(8).xls
19007130(9).xls
19012705.xls
19012856.xls
然后要怎么移动比较快呢?编写一个 bat 文件或者在命令提示符下输入 for ... 都有些麻烦,然后我想到了 xargs,于是有了下面的 do.bat:- @echo off
- if "%~1" == "" exit /b
-
- for /f "eol= delims=" %%a in (' findstr .* ') do (
- %*
- )
复制代码 把这个 do.bat 放到 path 变量文件夹里,接着就方便了 ——
E:\test\9月>md ..\10月
E:\test\9月>findstr /m /i /c:"Date: Oct" *.xls | do move "%a" ..\10月 |