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

[文件操作] 批处理移动文件怎样添加排除变量?请帮助

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

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

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

不知道两个排除效果在同一个批处理中实现会不会有冲突,不好处理的话就分2个bat实现。

本帖最后由 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
复制代码

TOP

回复 1# toyerspollors
感觉应当把%var1%和%var2%位置倒换一下更好,2楼代码已修改。

TOP

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

TOP

返回列表