Windows 批量给文件名加前缀,为什么加了两次?
Windows batch to add prefix to file names, why added twice?
为了向文件夹中的所有 pdf 文件添加一个简单的 "hello" 前缀,我使用了这个批处理文件:
FOR %%F IN (*.pdf) DO (RENAME "%%F" "hello%%F")
将其保存到 "rename.bat" 文件中并将其放入我需要重命名文件的文件夹中。然后我双击 "rename.bat".
这几乎可以工作,但第一个文件添加了两次前缀。
假设在我的文件夹中:A.pdf、B.pdf、C.pdf,它们被转换为:
- 你好你好A.pdf
- 你好B.pdf
- 你好C.pdf,
你知道批处理文件有什么问题吗?
我注意到当 多个文件 时它总是这样做。当文件夹中只有一个文件时它工作正常,但它不是很有用:-)。
/f
消除了重新捕获现有文件的问题:
FOR /f "delims=" %%F IN ('DIR /a-d /b *.pdf') DO (RENAME "%%F" "hello%%F")
@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
这很好用.....试一试...没有双前缀...永远。
为了向文件夹中的所有 pdf 文件添加一个简单的 "hello" 前缀,我使用了这个批处理文件:
FOR %%F IN (*.pdf) DO (RENAME "%%F" "hello%%F")
将其保存到 "rename.bat" 文件中并将其放入我需要重命名文件的文件夹中。然后我双击 "rename.bat".
这几乎可以工作,但第一个文件添加了两次前缀。
假设在我的文件夹中:A.pdf、B.pdf、C.pdf,它们被转换为:
- 你好你好A.pdf
- 你好B.pdf
- 你好C.pdf,
你知道批处理文件有什么问题吗?
我注意到当 多个文件 时它总是这样做。当文件夹中只有一个文件时它工作正常,但它不是很有用:-)。
/f
消除了重新捕获现有文件的问题:
FOR /f "delims=" %%F IN ('DIR /a-d /b *.pdf') DO (RENAME "%%F" "hello%%F")
@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
这很好用.....试一试...没有双前缀...永远。