windows - 用 4 位数字顺序重命名文件 - .bat
问题描述
我正在寻找我的问题的解决方案,在我正在使用的脚本下方,我在这里找到了它,改变了它,它正在按照我想要的方式工作,但现在我想这样做,我我在为答案而苦苦挣扎。
例子:
<br>Open_university_MS221_0001.tif</br>
<br>Open_university_MS221_0001-2.tif</br>
<br>Open_university_MS221_0002.tif</br>
<br>Open_university_MS221_0002-2.tif</br>
<br>etc.</br>
<br>Open_university_MS221_0001.tif</br>
<br>Open_university_MS221_0002.tif</br>
<br>Open_university_MS221_0003.tif</br>
<br>Open_university_MS221_0004.tif</br>
<br>etc.</br>
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count=1
for %%f in (*.tif) do (
set FileName=%%~nf
set FileName=000!count!
set FileName=!FileName:~-4!
for /F "tokens=1-3 delims=_+" %%g in ('dir /b /od *.tif') do (
set prefix=%%g_%%h_%%i
)
set FileName=!prefix!_!Filename!%%~xf
rename "%%f" "!FileName!"
set /a count+=1
)
解决方案
下面的工作解决方案,感谢 aschipfl 给我指路和 Stephan
@echo off
setlocal enableextensions enabledelayedexpansion
set "psCommand="(new-object -COM 'Shell.Application')^
.BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
for /f "usebackq delims=" %%i in (`powershell %psCommand%`) do set "folder=%%i"
cd %folder%
set path=%folder:~1%
for %%i in ("%path%") do (
set "parent=%%~ni"
)
set /a count=10000
for /F "eol=| delims=" %%f in ('dir /B /A:-D-H-S /O:N "*.tif"') do (
set /a count+=1
set fileName=!parent!_!count:~-4!%%~xf
rename "%%f" "!fileName!"
)
exit /b
推荐阅读
- r - 如何修改 ggplot2 stat_density_2d 等高线图密度缩放?
- c - calloc 后的 realloc 是否会清零字节?
- excel - 使用 VBA 中的引用单元格更新数据透视表字段
- java - 应用了逻辑的 Twitter API
- python - 脚本不会为 Excel 电子表格的每一行发送电子邮件
- python - 在 Python 中访问嵌套字典以在 for 循环中进行比较
- bash - 我的 bash 命令中的错误“未知谓词 `--output'”指的是什么?
- javascript - Javascript ES2020 中是否有等效的 optionalChaining?
- ansible - 使用 with_items 循环安装时为包设置友好名称
- azure - 无法从免费服务菜单创建 Azure 应用服务