动态使用WILDCARD的子名称从具有不同名称的子名称删除批处理文件
批处理文件以从通配符文件夹中删除文件
这是一个简单的批处理脚本示例,我一直使用它来完成此类任务,我插入了可变文件夹路径以适应您所描述的需求:
样品批处理脚本
(将变量根文件夹和子文件夹放在最上面,并且FOR /D
and FOR
循环相应地进行迭代,以按照逻辑指定并完成文件的DEL /Q /F
命令来完成其余遍历目录的*.txt
操作)
@ECHO ON
SET SourceDir=D:\L1
SET SourceSubDir=L3
:: --// note the asterisk wildcard after SourceDir in the first FOR /D loop using X as the variable
:: --// note the X variable appended to the beginning of the second FOR (no /D switch here) loop in the SET part using Y as the variable
FOR /D %%X IN ("%SourceDir%\*") DO FOR %%Y IN ("%%~X\%SourceSubDir%\*.txt") DO DEL /Q /F "%%~Y"
GOTO EOF
注意: 如果您打算使用复制和粘贴操作来手动运行此命令,则 循环中的变量FOR
需要除去所有部分中的百分号之一,因此如果您正在运行此,请对该部分使用以下内容手动执行复制和粘贴操作,而不是使用批处理脚本,然后执行上面示例中的操作。
FOR /D %X IN ("%SourceDir%\*") DO FOR %Y IN ("%~X\%SourceSubDir%\*.txt") DO DEL /Q /F "%~Y"
进一步的细节和研究
( 在Windows命令提示符中键入FOR /?
以查看此详细信息)
FOR(不带开关)
Runs a specified command for each file in a set of files.
FOR %variable IN (set) DO command [command-parameters]
%variable Specifies a single letter replaceable parameter.
(set) Specifies a set of one or more files. Wildcards may be used.
command Specifies the command to carry out for each file.
command-parameters
Specifies parameters or switches for the specified command.
To use the FOR command in a batch program, specify %%variable instead
of %variable. Variable names are case sensitive, so %i is different
from %I.
If Command Extensions are enabled, the following additional
forms of the FOR command are supported:
FOR / D
FOR /D %variable IN (set) DO command [command-parameters]
If set contains wildcards, then specifies to match against directory
names instead of file names.