我有一些文件,如AAA_a001.jpg',
BBB_a002.jpg', CCC_a003.jpg',在Windows 7中。 我试图用批处理将这些文件重命名为
a001_AAA.jpg,
a002_BBB.jpg,
a003_CCC.jpg`。
只是要在_
之间交换内容。
我已经搜索了一段时间,但仍然不知道如何做。 谁能帮帮我? 谢谢。
使用REN
命令
"Ren "是指 "重命名"。
ren ( where the file is located ) ( the new name )
例子
ren C:\Users\&username%\Desktop\aaa.txt bbb.txt
它将把aaa.txt改为bbb.txt
你的代码将是:
ren (file located)AAA_a001.jpg a001.AAA.jpg
ren (file located)BBB_a002.jpg a002.BBB.jpg
ren (file located)CCC_a003.jpg a003.CCC.jpg
以此类推
IT WILL NOT WORK IF THERE IS SPACES!
希望对您有所帮助 :D
@echo off
pushd "pathToYourFolder" || exit /b
for /f "eol=: delims=" %%F in ('dir /b /a-d *_*.jpg') do (
for /f "tokens=1* eol=_ delims=_" %%A in ("%%~nF") do ren "%%F" "%%~nB_%%A%%~xF"
)
popd
注意:名称在"_"的第一次出现时被分割。如果一个文件被命名为"part1_part2_part3.jpg",那么它将被重命名为"part2_part3_part1.jpg";
我假设你知道_
之前和下划线之后部分的长度,以及扩展名。如果你不知道,它可能比简单的子串更复杂。
cd C:\path\to\the\files
for /f %%a IN ('dir /b *.jpg') do (
set p=%a:~0,3%
set q=%a:~4,4%
set b=%p_%q.jpg
ren %a %b
)
我只是想出了这个脚本,而且我没有测试它。请查看this和that了解更多信息。
如果你想假设你不知道_
的位置、长度和扩展,我想你可以用for循环来检查_
的索引,然后检查.
的最后一个索引,用goto
的东西来包裹它,使它工作。如果你愿意经历这些麻烦,我建议你至少使用WindowsPowerShell(或Cygwin)(为你自己着想),或者安装一种更高级的脚本语言(如Python/Perl),这样你会得到更多支持。