Re: [問題] Dos AutoBatch

看板Programming作者 (五黑)時間17年前 (2008/01/18 05:40), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串2/8 (看更多)
※ 引述《TwoDemon (店小二)》之銘言: : 如果將一個目錄下一次移10個檔至另一個目錄。 : 我原來的寫法是全移: move D:\test1\*.txt C:\test2\ : 但現在要改成一次最多只移10個檔。 : 但,要怎麼寫成一個完整可以運作的script,希望版上高手幫幫忙,謝謝! 如果認真要寫,以目前現存以及殘存的系統來說, 要看很多種DOS shell script版本. 目前在Windows XP的HP修正版本(筆記型電腦加裝了HP修改版的Windows說明檔), 程式架構大概是: @echo off setlocal set count=0 for /f "usebackq" %%s in (`dir /b`) do set /a count=%count%+1 & echo %count% %%s endlocal @echo on 這樣輸出的答案應該是每行有一個行號與一個檔名. 然後可能可以根據find命令來找出1到10行. *但是!!!* 上述程式在我的電腦印出行號全都是0, 在for中每次 set /a count=%ccount%+1並不立刻修改到count內容, 在命令列中輸入 for /f "usebackq" %s in (`dir /b`) do set /a count=%count%+1 & echo %count% %s 就看得出來,每次set /a count=%count%+1答案都一樣,而後來 echo %count% %s的行號也都一樣,實在沒什麼辦法. 如果可以把for /l %i in (1,1,10) do echo %i與 for /f "usebackq" %s in (`dir /b`) do echo %s適當地結合, 也許還做得下去. 另一個問題是,如果在XP的shell做得出來,也不敢保證在MS-DOS 6.22也能這樣用... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.228.167

01/18 15:15, , 1F
你的count不會加的原因在set的求助裡有說明
01/18 15:15, 1F

01/18 15:16, , 2F
不過那要在呼叫cmd時加上/v
01/18 15:16, 2F

01/18 15:17, , 3F
才能夠用一個特殊的語法解決
01/18 15:17, 3F

01/18 17:39, , 4F
我了解了,謝謝
01/18 17:39, 4F
文章代碼(AID): #17a3lLCy (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
0
1
完整討論串 (本文為第 2 之 8 篇):
問題
1
7
問題
問題
問題
1
5
問題
問題
問題
1
4
問題
0
1
文章代碼(AID): #17a3lLCy (Programming)