檔案目錄下有排好序的多張圖片,命名:1.jpg 2.jpg ..... n.jpg
現有檔案名檔案id.txt , 內容為排好序的id,每個id占用一行,其中圖片數量與id行數一致,如下:
1111
2222
現需要通cmd命令,批量將圖片名改為同索引的檔案中的id,如下:
1.jpg ----> 1111.jpg
2.jpg ----> 2222.jpg
曾經嘗試一下腳本,但是無效,為何goto之后跳出了兩層回圈? 求高手解答:
@echo on
set line=0
for /f %%a in ('dir /b *.jpg') do (
for /f "skip=%line% delims=" %%i in (id.txt) do (
set id=%%~i
echo 'filenam:' %%a 'fileid:' %%i
goto :next
)
:next
#此處使用copy命令修改檔案名
copy %%a image\%id%.jpg
set /a line+=1
)
echo %line%
)
uj5u.com熱心網友回復:
for /F 的選項里不支持變數擴展?for 可能還不支持嵌套吧。若是我,可能會采取直接在 excel 里把 id.txt 整理成最后的一個個的 ren 命令的 批處理,然后直接運行它就完了。
uj5u.com熱心網友回復:
這樣寫for看起來是很多行,但是cmd把它當成一行讀入。要用setlocal延遲變數。嵌套for實在不利于除錯,還會有奇怪的事情發生。call子程式比較好。
你的需求并不用嵌套for。你的代碼效率很低。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/51725.html
標籤:一般軟件使用
