Windows批处理为文件名添加前缀,为什么要添加两次?

时间:2015-01-15 12:06:38

标签: windows file batch-file batch-processing prefix

为了在我使用此批处理文件的文件夹中的所有pdf文件中添加一个简单的" hello" 前缀:

FOR %%F IN (*.pdf) DO (RENAME "%%F" "hello%%F")

将此保存到" rename.bat"文件并将其放入我需要重命名的文件的文件夹中。然后我只需双击" rename.bat"。

这几乎可以正常工作,但是第一个文件会添加两次前缀。

让我们在我拥有的文件夹中说:A.pdf,B.pdf,C.pdf,它们会被转换为:

  • hellohelloA.pdf
  • helloB.pdf
  • helloC.pdf,

您知道批处理文件中的错误吗?


我注意到当文件多于一个时,它总会这样做。当文件夹中只有一个文件时它可以正常工作,但它不是很有用: - )。

2 个答案:

答案 0 :(得分:8)

/f消除了重新捕获现有文件的问题:

FOR /f "delims=" %%F IN ('DIR /a-d /b *.pdf')  DO (RENAME "%%F" "hello%%F")

答案 1 :(得分:0)

@echo off
echo.
echo. Add Whatever Prefix...
echo.
echo. You Want To Add...
echo.
echo. To The Filename...
echo.
set /p variable=" > "
setlocal enabledelayedexpansion
for /f "delims=" %%a in (' dir /b /a-d *.pdf') do (
  set oldName=%%a
  Set newName=%variable%!oldName!
  Ren "!oldName!" "!newName!"
)
exit

这很有效.....试一试......没有双重前缀......永远。