2016-12-27 54 views
0

与CMD语法在遇到问题时,试图在没有侧柜特定文件夹特定扩展名删除文件删除文件。例如:如果文件夹中包含:赢CMD:有没有侧柜

1.A,1.B,2.A,3.A,4.A,4.B

蝙蝠只应删除

2.A,3.A

..希望有道理。

我已经走到这一步,必须是真正的接近,可惜的是没有工作

@echo off 

FOR %%x IN (%1\*.A) DO 
(
    IF not exist "%1\%x.B" del "%1\%x.A" 
) 

任何帮助赞赏大部分的代码。

+3

您正在使用'%% x'来定义变量和'%x'来使用它;你也需要使用'%% x'来使用它。 – SomethingDark

+1

'('也必须与'do'在同一条物理线上。 – Magoo

回答

0

意见的问题是正确的

  • FOR变量百分比在批处理脚本中使用
  • 左括号必须在同一行做的时候必须一致一倍。但是这样一个简单的脚本就没有任何需要。

另外,您只需要FOR变量的基本名称,所以您需要~n修饰符。

我由开始使用PUSHD使代码更健壮一点。

@echo off 
pushd %1 
for %%F in (*.A) do if not exist "%%~nF.B" del "%%F" 
popd 
+0

谢谢,这真的很有帮助 – Vobla