命令提示符脚本以重命名文件

时间:2014-07-22 14:26:44

标签: scripting command-prompt

我得到了一些帮助脚本编写批处理脚本来标记来自foxidrive的图像文件。但是,我搞砸了目录,它标记了该文件夹中的所有内容。所以现在我有1000多个图像(.jpg)文件,每个文件名末尾有这个字符串" - 09-07-2014 - 09-07-2014 - 09-07-2014 - 09-07-2014 - 21-07-2014 - 21-07-2014.jpg"。

有没有办法通过从给定文件夹上的每个.jpg文件上的这些文件名中删除上面的字符串来重命名这些?我打算在命令提示符下写这个

感谢。

2 个答案:

答案 0 :(得分:1)

在文件夹中启动它,然后检查renfiles.bat以查看重命名命令是否正确,然后再删除.txt并运行它。

@echo off
for %%a in (*.jpg) do (
echo "%%a"|repl "^.(.*) - 09-07-2014 - 09-07-2014 - 09-07-2014 - 09-07-2014 - 21-07-2014 - 21-07-2014.*" "ren $& \q$1%%~xa\q" ax >> renfiles.bat.txt
)

这使用名为repl.bat的助手批处理文件(由dbenham提供) - 从以下网址下载:https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

repl.bat放在与批处理文件相同的文件夹中或放在路径上的文件夹中。

答案 1 :(得分:0)

@echo off

set workdir=d:\test

cd %workdir%

for /f "delims=" %%i in ('dir /b /s *.jpg') do call :search "%%i"
goto :eof

:search

set filename=%~n1
set fileextn=%~x1

set newfilename=%filename: - 09-07-2014 - 09-07-2014 - 09-07-2014 - 09-07-2014 - 21-07-2014 - 21-07-2014=%

ren "%filename%%fileextn%" "%newfilename%%fileextn%" >nul 2>&1


:eof

样本 -

D:\>dir d:\test
 Volume in drive D is New Volume
 Volume Serial Number is B04C-AB59

 Directory of d:\test

24/07/2014  19:16    <DIR>          .
24/07/2014  19:16    <DIR>          ..
24/07/2014  19:09                 2 ABC Court Doc - 09-07-2014 - 09-07-2014 - 09-07-2014 - 09-07-2014 - 21-07-2014 - 21-07-2014.jpg
24/07/2014  19:09                 2 YXZ Court Doc - 09-07-2014 - 09-07-2014 - 09-07-2014 - 09-07-2014 - 21-07-2014 - 21-07-2014.jpg
           2 File(s)              4 bytes
           2 Dir(s)   7,037,292,544 bytes free

D:\>draft.bat

D:\test>dir d:\test
 Volume in drive D is New Volume
 Volume Serial Number is B04C-AB59

 Directory of d:\test

24/07/2014  19:16    <DIR>          .
24/07/2014  19:16    <DIR>          ..
24/07/2014  19:09                 2 ABC Court Doc.jpg
24/07/2014  19:09                 2 YXZ Court Doc.jpg
           2 File(s)              4 bytes
           2 Dir(s)   7,037,292,544 bytes free

干杯,G