我在文件夹
中有以下文件如何将它们重命名为仅包含最后11个字符?
123_abcdefghijk.doc to abcdefghijk.doc
1234_abcdefghikh.doc to abcdefghikh.doc
12345_abcdefghijl.doc to abcdefghijl.doc
提前感谢您的帮助。
答案 0 :(得分:1)
未经测试
@echo off
set "doc_dir=c:\docs"
setlocal enableDelayedExpansion
pushd "%doc_dir%"
for %%# in (*.doc) do (
set "docname=%%~n#"
set "docname=!docname:~-11!"
rem !!! remove the echo if ren command looks ok !!!!
echo ren "%%~f#" "%%~dp#!docname!.doc"
)
endlocal
答案 1 :(得分:1)
for /f "tokens=1*delims=_" %%a in (*_*.doc) do ECHO(ren "%%a_%%b" "%%b"
(作为批处理行 - 从提示简化%%
到%
)
假设您要在当前目录中执行任务。
假设您确实要删除文件名中包含_
的前导字符串。
为了测试目的,所需的REN命令仅为ECHO
。 在您确认命令正确后,将ECHO(REN
更改为REN
以实际重命名文件。
答案 2 :(得分:0)
喜欢@ npocmaka的解决方案..但是..
你在哪里:
echo ren "%%~f#" "%%~dp#!docname!.doc"
您需要检查/重新检查:
if not exist "%%~dp#!docname!.doc" ( ren "%%~f#" "%%~dp#!docname!.doc"
) else ( echo "%%~dp#!docname!.doc" already exists >> error_log.out )