Windows:重命名cmd中的文件
我正试图想出一个脚本来做以下工作,但我没有和Windows编码的经验 我正在努力实现以下目标: 我有一个文件夹,其中有多个图像,我想用这样的顺序重命名它 2012.000.价值 WARE值是我希望它能够在脚本运行之前输入一个值,第一个图像将是该数字,然后它将使用该值重命名该图像文件夹 有些图像可能有一个名为Original的文件名,我希望保留该值,但也将上述序列插入到文件名中 这些图像将是.jpg 以上代码假定目录的格式为%CurrentYear%.000。???。如果你想要多年,你需要不同的代码 编辑:此代码不会输出000.jpg或001.jpg,它将输出0.jpg或1.jpg。下面的代码将处理这个问题 此外,它将完全删除.jpg的原始文件名,并将使用任何值。如果希望保留原始文件名,如-filename.jpg,请将ren行更改为: 代码不会对文件进行排序,但会按照创建顺序对其进行处理。如果要按字母顺序排列,请将%%x\*.jpg do行中的%%z更改为: 编辑:此代码将输出长度一致的数字,受用户输入的限制 要使用此代码,您需要向其传递希望最大数字为多少个字符。所以Windows:重命名cmd中的文件,windows,image,batch-file,cmd,Windows,Image,Batch File,Cmd,我正试图想出一个脚本来做以下工作,但我没有和Windows编码的经验 我正在努力实现以下目标: 我有一个文件夹,其中有多个图像,我想用这样的顺序重命名它 2012.000.价值 WARE值是我希望它能够在脚本运行之前输入一个值,第一个图像将是该数字,然后它将使用该值重命名该图像文件夹 有些图像可能有一个名为Original的文件名,我希望保留该值,但也将上述序列插入到文件名中 这些图像将是.jpg 以上代码假定目录的格式为%CurrentYear%.000。???。如果你想要多年,你需要不同的代
IMG 2
…可以将文件从00.jpg重命名为99.jpg,并且
…可以将文件从0000.jpg重命名为9999.jpg
伊姆格巴特
我更喜欢这种方法,因为Windows资源管理器通常按字母顺序对文件进行排序,因此这将是1.jpg 2.jpg 3.jpg 10.jpg 20.jpg的文件顺序
但如果这些数字固定为3个字符宽,前导为0,则它们的字母顺序为:
001.jpg
002.jpg
003.jpg
010.jpg
020.jpg
我能让它超过999吗?如果找到此值,我是否可以包含一个if语句!计数!-%%~nz.jpg`否则使用原件one@JessMcKenzie-我的错。它已经可以处理999以上的数字,而不是固定长度的数字。我添加了处理这个问题的代码。如果您能再次选择并投票,我将不胜感激
for /f "tokens=*" %%z in ('dir /o:n %%x\*.jpg') do (
IMG 2
IMG 4
@echo off
setlocal enabledelayedexpansion
:: Set how many characters the number can be. IE 00 = 2, 0000 = 4
set places=%1
set count=0
set zeros=
for /l %%x in (1,1,%places%) do set zeros=!zeros!0
for /d %%x in (%date:~-4%.000.???) do (
for /f "tokens=3 delims=." %%y in ("%%x") do (
set count=%%y
for %%z in (%%x\*.jpg) do (
:: Make give !count! leading 0's if nessicary
set count=%zeros%!count!
:: Trim !count! down to a 4 digit number
set count=!count:~-%places%!
ren %%~dpnxz !count!.jpg
:: Trim ALL 0's on the left to avoid calculation problems.
set /a n=places-1
for /l %%a in (0,1,!places!) do if "!count:~0,1!"=="0" set count=!count:~1!
set /a count=count+1
)
)
)
endlocal
1.jpg
10.jpg
2.jpg
20.jpg
3.jpg
001.jpg
002.jpg
003.jpg
010.jpg
020.jpg