win cmd:删除没有边车的文件
win cmd: Deleting files that have no sidecars
cmd 语法有问题,试图删除特定文件夹中没有 sidecar 的具有特定扩展名的文件。例如:如果文件夹包含:
1.A, 1.B, 2.A, 3.A, 4.A, 4.B
bat 应该只删除
2.A, 3.A
..希望这是有道理的。
到目前为止我得到的代码必须非常接近,不幸的是不能工作
@echo off
FOR %%x IN (%1\*.A) DO
(
IF not exist "%1\%x.B" del "%1\%x.A"
)
非常感谢任何帮助。
问题的评论是正确的
- FOR 变量百分比在批处理脚本中使用时必须始终加倍
- 开括号必须与 DO 在同一行。但是这么简单的脚本就不需要parens了。
此外,您只需要 FOR 变量的基本名称,因此您需要 ~n
修饰符。
我在开始时使用 PUSHD 使代码更加健壮。
@echo off
pushd %1
for %%F in (*.A) do if not exist "%%~nF.B" del "%%F"
popd
cmd 语法有问题,试图删除特定文件夹中没有 sidecar 的具有特定扩展名的文件。例如:如果文件夹包含:
1.A, 1.B, 2.A, 3.A, 4.A, 4.B
bat 应该只删除
2.A, 3.A
..希望这是有道理的。
到目前为止我得到的代码必须非常接近,不幸的是不能工作
@echo off
FOR %%x IN (%1\*.A) DO
(
IF not exist "%1\%x.B" del "%1\%x.A"
)
非常感谢任何帮助。
问题的评论是正确的
- FOR 变量百分比在批处理脚本中使用时必须始终加倍
- 开括号必须与 DO 在同一行。但是这么简单的脚本就不需要parens了。
此外,您只需要 FOR 变量的基本名称,因此您需要 ~n
修饰符。
我在开始时使用 PUSHD 使代码更加健壮。
@echo off
pushd %1
for %%F in (*.A) do if not exist "%%~nF.B" del "%%F"
popd