Board logo

标题: [文件操作] 批处理移动文件怎样添加排除变量?请帮助 [打印本页]

作者: toyerspollors    时间: 2021-9-11 16:30     标题: 批处理移动文件怎样添加排除变量?请帮助

我要将d:\123路径下的所有文件(需/S遍历子级),移动到E:\路径下。

第1个批处理是要排除.rar的文件不移动。可能有时候要排除几种类型文件,这个排除最好能设置变量。

第2个批处理是要排除某些带关键字的文件夹。如文件夹命名有“老师”的不移动。

不知道两个排除效果在同一个批处理中实现会不会有冲突,不好处理的话就分2个bat实现。
作者: qixiaobin0715    时间: 2021-9-11 17:26

本帖最后由 qixiaobin0715 于 2021-9-11 18:14 编辑

回复 1# toyerspollors
未经测试:
  1. @echo off
  2. set "var1=.rar$ .bat$"
  3. set "var2=老师.*\\ 学生.*\\"
  4. for /f "delims=" %%i in ('dir /b /s /a-d^|findstr /vr "%var2% %var1%"') do move "%%i" "E:\"
  5. pause
复制代码

作者: qixiaobin0715    时间: 2021-9-11 18:16

回复 1# toyerspollors
感觉应当把%var1%和%var2%位置倒换一下更好,2楼代码已修改。
作者: qixiaobin0715    时间: 2021-9-12 21:05

存疑:
1.如果像2楼那样设置变量,%var1%和%var2%位置需倒换;
2.如果改为:set "var2=老师.*\\.* 学生.*\\.*",无论位置如何都能得到正确结果。
解释不通啊,看来批处理确实诡异。希望有高手能给与解释。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2