我正在尋找解決我的問題的方法,在我使用的腳本下面,我在這里找到了它,改變了它,它以我想要的方式為我的作業服務,但現在我想這樣做,我正在努力尋找答案。
例子:
<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>等</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>等</br>。
@echo off
setlocal enableextensions enabledelayedexpansion
設定/a count=1
for %%f in (*.tif) do (
設定檔案名=%%~nf
設定 FileName=000!count!
設定FileName=!FileName:~-4!
for /F "tokens=1-3 delims=_ " %%g in ('dir /b /od *.tif' ) do (
設定前綴=%%g_%%h_%%i
)
設定檔案名=!前綴!_!檔案名!%%~xf
重命名"%%f""!檔案名!"
設定/a count =1
)
uj5u.com熱心網友回復:
下面是可行的解決方案,感謝aschipfl給我指點迷津和Stephan
@echo off
setlocal enableextensions enabledelayedexpansion
設定 "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%
設定路徑=%folder:~1%
for %%i in ("%path%") do (
設定 "parent=%%~ni"
)
設定/a count=10000
for /F "eol=| delims=" %%f in ('dir /B /A:-D-H-S /O:N "*.tif"' ) do (
設定/A計數 =1
設定fileName=!parent!_!count:~-4!%%~xf
重命名"%%f" "!fileName!"
)
退出 /b
uj5u.com熱心網友回復:
當你在進入回圈之前將計數器初始化為10000時,你可以在回圈中擺脫大量的代碼。然后在回圈中,你只需使用!count:~-4!
@echo off
setlocal enableextensions enabledelayedexpansion
設定/a count=10000
for %%f in (*.tif) do (
for /F "tokens=1-3 delims=_ " %%g in ('dir /b /od *.tif') do (
設定前綴=%%g_%%h_%%i
)
設定/a count =1
設定檔案名=!前綴!_!計數:~-4!%%~xf
重命名"%%f" "!FileName!"
)
這段代碼可以縮短得更短,但要以可讀性為代價。
哦--而且我把set /a count =1往上移,以避免從0000開始(你的例子顯示,你不希望這樣)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315752.html
標籤:
上一篇:批量混合型特殊字符故障?
