2017-03-27 85 views
0

我在我的文件夾中有2個文件。一個是「TEST ONE.txt」,另一個是「LEARN NEW.vcd」。 我需要創建批處理腳本來使用* .vcd重命名* .txt。 因此,批處理腳本應該將「TEST ONE.txt文件」重命名爲「LEARN NEW.txt」。基於另一個文件名重命名文件名的shell腳本

我的文件夾C:\ DEV文件夾中只有一個帶txt的文件和一個帶有vcd擴展名的文件。

我試着用下面的腳本,但它不拿起VCD延伸的全名和空格之後下降了一切 - 所以我只是得到Learn.txt,以:(

@echo ON 
CD "C:\DEV folder" 
setlocal enabledelayedexpansion 
for /F %%A in ('dir /b *.vcd') do ( 
    set xname= %%~nA 
    ren *.txt !xname!.txt 
) 

謝謝 - DB

回答

0

看來,FOR /F默認的可能是隻需要一(1)令牌,你可以強制它全部採用tokens=*服用。引用是很重要的。

@echo ON 
CD "sub" 
setlocal enabledelayedexpansion 
for /F "usebackq tokens=*" %%A in (`dir /b *.vcd`) do (
    set xname=%%~nA 
    ren "*.txt" "!xname!.txt" 
) 
+0

你甚至不需要延遲擴展和變量:'ren「* .txt」「%%〜nA.txt」' – Stephan