从子文件夹中删除文件但要排除一个子文件夹-批处理文件
Delete file from sub folder but want to exclude one sub folder-batch file
我有父文件夹名称 parent,在父文件夹中有 subfolder01
、subfolder02
和 default
文件夹。
每个文件夹包含一个 jar
个同名文件 (abc.jar
)。我想从 subfolder01
和 subfolder02
中删除 jar
文件,而不是从 default
文件夹中删除。
如何在给命令 del /s *.abc.jar
时排除 default
文件夹?
您需要一个带有 /F
选项的 for
循环,这将允许循环解析 dir
命令的输出。可能的解决方案:
批处理文件:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)
cmd
cmd /v:on
for /f "delims=" %A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)
我有父文件夹名称 parent,在父文件夹中有 subfolder01
、subfolder02
和 default
文件夹。
每个文件夹包含一个 jar
个同名文件 (abc.jar
)。我想从 subfolder01
和 subfolder02
中删除 jar
文件,而不是从 default
文件夹中删除。
如何在给命令 del /s *.abc.jar
时排除 default
文件夹?
您需要一个带有 /F
选项的 for
循环,这将允许循环解析 dir
命令的输出。可能的解决方案:
批处理文件:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)
cmd
cmd /v:on
for /f "delims=" %A IN ('dir "parent_folder" /b /s /A:D') do set "my_var=%A" && if "!my_var:\default\=!"=="!my_var!" (del !my_var!\abc.jar)