从 Windows 命令行中的 %% 参数中排除文件夹
Excluding folders from %% parameter in Windows command line
我想修改以下代码以更好地定位一组文件夹。
我有以下文件夹结构:
- C:\Root\Dir1\Data, C:\Root\Dir2\Data, ...
- D:\Root\Dir1\Data, C:\Root\Dir2\Data, ...
C: 包含工作副本,D: 包含要按需恢复的备份副本。 ,我使用以下批处理文件:
for /d %%g in ("C:\Root\*") do rd /s /q "%%g\Data"
xcopy /s /q "D:\Root" "C:\Root"
pause
我现在需要一种方法来指定 %%g
以排除 C:\Root\*
中的文件夹。例如,我希望第 1 行删除 C:\Root\Dir1\Data
和 C:\Root\Dir2\Data
但不删除 C:\Root\Dir3\Data
。需要明确排除项,因为包含项集会发生变化。我还需要第 2 行来更好地定位文件夹。但是,我相信这可以通过 XCOPY 的 /EXCLUDE:"D:\Root\Dir3"
开关来完成。
非常感谢您的阅读,并提前进行任何讨论! :)
... do if "%%~g" neq "C:\Root\Dir3" rd ...?
– Stephan
我想修改以下代码以更好地定位一组文件夹。
我有以下文件夹结构:
- C:\Root\Dir1\Data, C:\Root\Dir2\Data, ...
- D:\Root\Dir1\Data, C:\Root\Dir2\Data, ...
C: 包含工作副本,D: 包含要按需恢复的备份副本。
for /d %%g in ("C:\Root\*") do rd /s /q "%%g\Data"
xcopy /s /q "D:\Root" "C:\Root"
pause
我现在需要一种方法来指定 %%g
以排除 C:\Root\*
中的文件夹。例如,我希望第 1 行删除 C:\Root\Dir1\Data
和 C:\Root\Dir2\Data
但不删除 C:\Root\Dir3\Data
。需要明确排除项,因为包含项集会发生变化。我还需要第 2 行来更好地定位文件夹。但是,我相信这可以通过 XCOPY 的 /EXCLUDE:"D:\Root\Dir3"
开关来完成。
非常感谢您的阅读,并提前进行任何讨论! :)
... do if "%%~g" neq "C:\Root\Dir3" rd ...?
– Stephan