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

看板EZsoft作者 (玻璃做的大叔)時間9年前 (2014/11/07 01:07), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/2 (看更多)
這和其他的「小軟體」不一樣,不過是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的參數,我想請問我應該要如何修改才能達成前面說的要求? -- 起初,他們追殺共產主義者,我沒有說話,因為我不是共產主義者; 接著,他們追殺猶太人,我沒有說話,因為我不是猶太人; 後來,他們追殺工會成員,我沒有說話,因為我不是工會成員; 此後,他們追殺天主教徒,我沒有說話,因為我是新教教徒; 最後,他們奔我而來,卻再也沒有人站起來為我說話了。 《First They Came(他們首次來時)》,Martin Niemoller牧師(1892-1984) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.36.155 ※ 文章網址: http://www.ptt.cc/bbs/EZsoft/M.1415293671.A.EDF.html

11/08 11:06, , 1F
第二個問題,因為for迴圈內的變數,不能用%%
11/08 11:06, 1F

11/08 11:08, , 3F
ph
11/08 11:08, 3F

11/08 11:09, , 4F
要用!!,且要設SETLOCAL ENABLEDELAYEDEXPANSION
11/08 11:09, 4F

11/08 11:09, , 5F
我一直覺得window不知道在搞什麼cmd語法超難用
11/08 11:09, 5F

12/01 00:04, , 6F
同感,謝謝。
12/01 00:04, 6F
文章代碼(AID): #1KMwhdxV (EZsoft)
文章代碼(AID): #1KMwhdxV (EZsoft)