将不同长度的多个文件重命名为16个字符

时间:2015-01-23 20:23:46

标签: file batch-file rename

我在文件夹

中有以下文件

如何将它们重命名为仅包含最后11个字符?

123_abcdefghijk.doc to abcdefghijk.doc
1234_abcdefghikh.doc to abcdefghikh.doc
12345_abcdefghijl.doc to abcdefghijl.doc

提前感谢您的帮助。

3 个答案:

答案 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 )
相关问题