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

作者: piligo (霹靂狗)   2014-11-07 08:32:20
※ 引述《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
作者: LIAR (玻璃做的大叔)   2014-11-07 21:39:00
set /p a=<check.txt這步只得到a=list.txt耶?
作者: piligo (霹靂狗)   2014-11-07 22:05:00
您不是只要搜尋img*.* 為何會出現list.txt ???
作者: LIAR (玻璃做的大叔)   2014-11-08 00:27:00
啊!了解了,我測試時用*.*所以找到自己(我用list.txt),加上原本的img*.*就沒有這問題,謝謝你。

Links booklink

Contact Us: admin [ a t ] ucptt.com