windows - 通过子文件夹顺序重命名文件 - .bat
问题描述
我正在尝试进行一些重命名,但递归地,下面是我所在的位置,我有点卡住了。我在我认为我错的地方添加了一条评论。
@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 "rootfolder=%%i"
@echo on
cd %rootfolder%
for /r "%rootfolder%\" %%a in (*) do (
set "folder=%%~dpa"
cd %%~dpa
for %%i in ("!folder!") do (
set parent=%%~ni
)
:: for %%i in ("!folder!") do (set parent=%%~ni)
:: that part returns me parent=
:: i would like it to be for example if folder is d:\test\test1
:: parent = test1
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
解决方案
你好,
发布我的问题的答案,我设法找到了解决方案,您可以在下面看到它,但我敢肯定,现在像您这样知道自己在做什么的人眼睛都在流血。
因此,如果您想帮助我使该脚本看起来更好,非常欢迎您。
@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 "rootfolder=%%i"
cd %rootfolder%
for /r "%rootfolder%" %%a in (*) do (
set Fdir=%%~dpa
call :001 "%%~a"
)
:001
cd %Fdir%
set Fder=%cd%
for %%i in (%Fder%) do (
call :002 "%Fder%"
)
:002
@echo on
set var1=%cd%
set var2=%var1%
set i=0
:003
for /F "tokens=1* delims=:+\+" %%A in ( "%var1%" ) do (
set /A i+=1
set var1=%%B
goto 003
)
for /F "tokens=%i% delims=:+\+" %%G in ( "%var2%" ) do set last=%%G
goto 004
:004
set parent=!last!
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
推荐阅读
- c++ - 互斥锁混乱
- mysql - 如何为唯一用户名检查编写更新查询
- three.js - 三.js 渲染质量
- javascript - 未捕获的类型错误:$.confirm 不是函数
- javascript - ngIf 不更新 DOM
- c# - 来自 ASP.NET Core API 的 JSON 结果中未包含的继承类和属性
- php - 从 PHP 发布到 Node Js
- iis - 偶尔出现 ANCM 无法找到本机依赖项错误(.Net Core 3.0)
- rx-java - PublishProcessor.offer() 如何知道下游没有消费之前的发射?
- xml - 优雅的数字按钮未显示在 Android Studio XML 预览中