假設我有一堆在.cmd文件的sqlcmd
命令,以便按字母順序例如:執行的所有命令當前文件夾在依次
- 01.setup.cmd
- 02.version1.cmd
- 03 .version2.cmd
- 04.version3.cmd
怎麼可能一個順序用另一個.cmd文件以正確的順序執行這些文件?
假設我有一堆在.cmd文件的sqlcmd
命令,以便按字母順序例如:執行的所有命令當前文件夾在依次
怎麼可能一個順序用另一個.cmd文件以正確的順序執行這些文件?
在Windows上:
for /F "tokens=*" %a in ('dir /b *.cmd') do call "%a"
這只是循環超過dir /b *.cmd
調用每個反過來的結果。從文檔
解釋:
一個文本文件/ F處理包括讀取文件,同時文本的一個 行,然後打破行成單獨 項目數據的稱爲「令牌」。然後使用設置爲找到的令牌的參數 執行DO命令。
所以我的命令說:
"tokens=*"
不給我個人的標記,給我整條生產線作爲一個打%a
- 名行變量%A(注:這是LL需要,如果你把它在一個批處理文件('dir /b *.cmd')
這是輸入到被轉義爲%%一個,它會遍歷。所有.cmd文件的如果我沒有添加令牌位,它會正常工作,直到您在文件名中找到空格。
我只是在DOS命令行上試過這個 - 我喜歡它 - 你可以編輯/解釋更多的答案。我更熟悉* nix shell腳本,而使用dos批處理文件腳本更少。謝謝 – 2016-09-06 14:59:17
@Tsar - 當你把它放在批處理文件中時,使用%% a而不是%a,否則這應該可以正常工作。 – FloatingKiwi
@fiprojects - 我添加了一些解釋。 – FloatingKiwi
您是否需要使用cmd文件,或者您是否可以使用shell腳本來爲您做這件事? –
什麼環境?視窗? * nix中? – 2016-09-06 14:56:29