我的文件夹中有2个文件。一个是“TEST ONE.txt”,另一个是“LEARN NEW.vcd”。 我需要创建一个批处理脚本来使用* .vcd重命名* .txt。 因此,批处理脚本应将“TEST ONE.txt文件”重命名为“LEARN NEW.txt”。
我的文件夹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 :(得分: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"
)
答案 1 :(得分:0)
以防万一有人迷路了,我不得不设计一种更优雅的解决方案,因为我希望它可以通过多个子目录,而不是一次运行一个目录。它是:
forfiles /S /M *.vcd /C "cmd /c rename *.txt @fname.txt"
使用您选择的文件扩展名。