我编写了一个批处理脚本,它通过读取输入文件并相应地删除这些文件夹内容但跳过其上的最后5个项目来获取值。
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%x in (sample.txt) do (
set folder=%%x
set del_folder=D:\myfolder\work\!folder!\reports
REM !del_folder!
FOR /f "skip=5 delims=" %%a IN (' DIR !del_folder! /o-d /b') DO RD /S /Q "echo Deleting folder contents of !del_folder!\%%a"
)
sample.txt看起来像(它包含文件夹名称)
alpha
bravo
charlie
tango
...
实施例,
说文件夹{{1}}和'java'
下的文件'report.yml'
必须排除在删除之外
D:\myfolder\work\alpha\reports
任何建议都会非常有用。提前谢谢。
答案 0 :(得分:1)
要排除Sample.txt文件中的某些文件夹,请更改以下行:
for /f "delims=" %%x in (sample.txt) do (
到
for /f "delims=" %%x in ('findstr /v /c:"folder 1" /c:"folder 2" "sample.txt"') do (
要排除!folder!\reports
内的某些文件,请更改此行:
FOR /f "skip=5 delims=" %%a IN (' DIR !del_folder! /o-d /b') DO RD /S /Q...
到
for /f "skip=5 delims=" %%a in ('dir !del_folder! /o-d /b^|findstr /v /c:"string 1" /c "string 2"') do del /q /f "%~fa"
只需为您的目的修改folder 1
,folder 2
,string 1
和string 2
。这是未经测试的,所以如果有问题请注释。