我有一些文件,如AAA_a001.jpg
,BBB_a002.jpg
,CCC_a003.jpg
在Windows 7 ,我尝试使用批处理这些文件重命名为a001_AAA.jpg
,a002_BBB.jpg
,a003_CCC.jpg
。Windows批处理文件重命名
只是为了交换_
之间的内容。
我一直在寻找一段时间,但仍然不知道如何做到这一点。 任何人都可以帮忙吗? 谢谢。
我有一些文件,如AAA_a001.jpg
,BBB_a002.jpg
,CCC_a003.jpg
在Windows 7 ,我尝试使用批处理这些文件重命名为a001_AAA.jpg
,a002_BBB.jpg
,a003_CCC.jpg
。Windows批处理文件重命名
只是为了交换_
之间的内容。
我一直在寻找一段时间,但仍然不知道如何做到这一点。 任何人都可以帮忙吗? 谢谢。
@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”
使用REN
命令
Ren
为rename
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
我假设您知道_
之前和下划线之后的部分的长度以及扩展名。如果你不这样做,它可能比简单的子字符串更复杂。
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以了解更多信息。
如果你要认为你不知道_
的位置和长度和延伸,我想你可以做一些与环路检查_
的索引,那么.
的最后一个索引,把它包装在一个goto
的东西,并使其工作。如果你愿意经历这个麻烦,我建议你至少使用WindowsPowerShell(或者Cygwin)(为了你自己)或者安装更高级的脚本语言(想想Python/Perl),你会得到更多的支持办法。
as itsproinc said,REN
command working!
但如果你的文件路径/文件名中有空格,用引号 “”
例如:
ren C:\Users\&username%\Desktop\my file.txt not my file.txt
添加 “”
ren "C:\Users\&username%\Desktop\my file.txt" "not my file.txt"
希望它有助于
我重新命名代码
echo off
setlocal EnableDelayedExpansion
for %%a in (*.txt) do (
REM echo %%a
set x=%%a
set mes=!x:~17,3!
if !mes!==JAN (
set mes=01
)
if !mes!==ENE (
set mes=01
)
if !mes!==FEB (
set mes=02
)
if !mes!==MAR (
set mes=03
)
if !mes!==APR (
set mes=04
)
if !mes!==MAY (
set mes=05
)
if !mes!==JUN (
set mes=06
)
if !mes!==JUL (
set mes=07
)
if !mes!==AUG (
set mes=08
)
if !mes!==SEP (
set mes=09
)
if !mes!==OCT (
set mes=10
)
if !mes!==NOV (
set mes=11
)
if !mes!==DEC (
set mes=12
)
ren %%a !x:~20,4!!mes!!x:~15,2!.txt
echo !x:~20,4!!mes!!x:~15,2!.txt
)
这正是我需要的。谢谢!! – yuchien
仍然是一个小问题:它也交换“.jpg”。防爆。 part1_part2.jpg => part2.jpg_part1 Orz – yuchien
@ raphael0914 - ???它适用于我:part1_part2.jpg - > part2_part1.jpg – dbenham