2016-09-06 54 views
0

假設我有一堆在.cmd文件的sqlcmd命令,以便按字母順序例如:執行的所有命令當前文件夾在依次

  1. 01.setup.cmd
  2. 02.version1.cmd
  3. 03 .version2.cmd
  4. 04.version3.cmd

怎麼可能一個順序用另一個.cmd文件以正確的順序執行這些文件?

+0

您是否需要使用cmd文件,或者您是否可以使用shell腳本來爲您做這件事? –

+0

什麼環境?視窗? * nix中? – 2016-09-06 14:56:29

回答

1

在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文件的
  • 那麼我婉裸目錄列表要做。調用命令%a。

如果我沒有添加令牌位,它會正常工作,直到您在文件名中找到空格。

+0

我只是在DOS命令行上試過這個 - 我喜歡它 - 你可以編輯/解釋更多的答案。我更熟悉* nix shell腳本,而使用dos批處理文件腳本更少。謝謝 – 2016-09-06 14:59:17

+2

@Tsar - 當你把它放在批處理文件中時,使用%% a而不是%a,否則這應該可以正常工作。 – FloatingKiwi

+1

@fiprojects - 我添加了一些解釋。 – FloatingKiwi

相關問題