繁体   English   中英

Windows:在cmd中重命名文件

[英]Windows: Renaming files within cmd

我试图提出一个脚本来执行以下操作,但我没有Windows编码方面的经验。

我正在努力实现以下目标:

我有一个包含多个图像的文件夹,我想用这样的序列重命名它

2012.000.value

值是我希望它能够在运行脚本之前输入一个值,并且第一个图像将是该数字,然后它将用该值重命名该图像文件夹。

某些图像可能具有一个名为Original的文件名,我想保留该值,但还要在文件名中插入以上序列。

图片将为.jpg

@echo off
setlocal enabledelayedexpansion
set count=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 (
      ren %%~dpnxz !count!.jpg
      set /a count=count+1
    )
  )
)
endlocal

上面的代码假定目录的格式为%CurrentYear%.000.??? 如果要使用多年,则需要使用不同的代码。

编辑:此代码将不会输出000.jpg001.jpg ,它将输出0.jpg1.jpg 底部的代码将处理该问题。

同样,它将完全删除###.jpg的原始文件名,并且可以使用任何值。 如果您希望像这样保留原始文件名,请#-FileName.jpgren行更改为:

      ren %%~dpnxz !count!-%%~nz.jpg

该代码不会对文件进行排序,但是会按照文件创建的顺序对其进行处理。如果要按字母顺序对它们进行更改,则将for %%z in (%%x\\*.jpg) do (更改for %%z in (%%x\\*.jpg) do (行:

  for /f "tokens=*" %%z in ('dir /o:n %%x\*.jpg') do (

编辑:此代码将输出一致长度的数字,受用户输入的限制。

要使用此代码,您需要向其传递您希望最大数量为多少个字符。 所以...

IMG 2

...可以从文件重命名00.jpg99.jpg和...

IMG 4

...可以将文件从0000.jpg重命名为9999.jpg

IMG.BAT

@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

我更喜欢这种方法,因为Windows资源管理器通常按字母顺序对文件进行排序,因此这将是1.jpg 2.jpg 3.jpg 10.jpg 20.jpg的文件顺序。

1.jpg
10.jpg
2.jpg
20.jpg
3.jpg

但是,如果将这些数字固定为3个字符的宽度,并以0开头,则它们的字母顺序为:

001.jpg
002.jpg
003.jpg
010.jpg
020.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM