2016-12-27 60 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