Re: [請問] for要如何只抓第一行&使用者輸入?

看板EZsoft作者 (霹靂狗)時間9年前 (2014/11/07 08:32), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《LIAR (玻璃做的大叔)》之銘言: : 這和其他的「小軟體」不一樣,不過是windows內建的應該OK吧? : for /f "tokens=1,1,1" %%a in ('dir /b /o-g-d img*.*') do ( : set /p newname=請輸入新檔名: : ren %%a "%newname%.jpg" : ) : 我希望能夠找出最新的一個img*.*檔案,並且提示使用者輸入新檔名, : 把這個檔案改成輸入的新檔名。 : 目前遇到兩個問題: : 1.他不會只抓第一個檔案,而是處理完第一個還會繼續第二個,一直做到 : 沒有符合的檔名為止。 : 2.set /p的參數沒有用,會被當成空白。如果是直接到命令列執行這個script, : 則是會記到前一次執行輸入的參數。 : 換句話說第一次輸入"1",newname=空白,第二次執行輸入"2",newname=1, : 以此類推。 : 我沒有正式學過for的參數,我想請問我應該要如何修改才能達成前面說的要求? 下面可以達成您要的效果,完全不用for dir /b /o-g-d img*.* >check.txt set /p a=<check.txt set /p b=請輸入新檔名: ren "%a%" "%b%.jpg" del check.txt -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.104.197.108 ※ 文章網址: http://www.ptt.cc/bbs/EZsoft/M.1415320342.A.DB6.html

11/07 21:39, , 1F
set /p a=<check.txt這步只得到a=list.txt耶?
11/07 21:39, 1F

11/07 22:05, , 2F
您不是只要搜尋img*.* 為何會出現list.txt ???
11/07 22:05, 2F

11/08 00:27, , 3F
啊!了解了,我測試時用*.*所以找到自己(我用list.txt),
11/08 00:27, 3F

11/08 00:28, , 4F
加上原本的img*.*就沒有這問題,謝謝你。
11/08 00:28, 4F
文章代碼(AID): #1KN1CMss (EZsoft)
文章代碼(AID): #1KN1CMss (EZsoft)