2010-11-16 87 views
1

我有一组文件的目录中的象下面这样:对于批处理编程循环

File-MyFile.txt 
File-AnotherFile.txt 
File-ThirdFile.txt

我要重命名的所有文件象下面这样:

MyFile.txt 
AnotherFile.txt 
ThirdFile.txt

如何使用一个for循环要做到这一点?

回答

3

克里斯显示做的最好办法。我认为这可能接近你所要求的,但我没有测试它:

@echo off 
for /f %%a IN ('dir /b *.txt') do call :dorename %%a 
goto :eof 

:dorename 
set oldfile=%1 
set newfile=%oldfile:File-=% 
rename %oldfile% %newfile% 
+0

该命令也不起作用。 – chanchal1987 2010-11-16 19:34:12

+0

好吧,仍然不完美,但它做你想做的事情。因人而异。 – clifgriffin 2010-11-16 19:50:29

+0

'newfile =%oldfile:File - =%'也可以是'newfile =%oldfile:〜5%' – Sathya 2010-11-16 20:32:09

0

你不需要一个循环:

rename File- "" File-*.txt 
+0

不适用于我。显示“命令的语法不正确。” – chanchal1987 2010-11-16 19:25:26

+0

对不起,一定忽略了dos-batch标签。这是为了unix重命名。 – chris 2010-11-16 21:48:15