你好, CR.從你的郵件來看,你想做一件類似如下所示的簡單工作:
Set objShell = CreateObject("Wscript.Shell") objShell.Run("dir"), 1, TRUE
但是,您并沒有得到一個當(dāng)前文件夾中所有文件的列表,而是得到了一條信息 The system cannot find the file specified(系統(tǒng)無法找到指定的文件)。為什么會這樣呢?
出現(xiàn)這個問題的原因是這樣的:您的計算機(jī)中實際上 并沒有 一個叫做“Dir”的文件。您可以搜索 dir.exe 或 dir.com;肯定無法找到它們。實際上,dir 是命令行外殼(cmd.exe 或 command.exe,具體情況根據(jù)所運行 Windows 的版本而定)的一個內(nèi)部命令。也就是說,dir 命令只能在命令行窗口中使用。為了證明這一點,請打開命令行窗口,輸入 dir,然后按 ENTER 鍵。您應(yīng)該看到當(dāng)前目錄下的所有文件和文件夾列表?,F(xiàn)在,打開運行 對話框,輸入dir ,然后按 ENTER 鍵。您將看到一條如下所示的錯誤信息:
![Hey, Scripting Guy!](/upload/200747213018323.jpg)
但是,這并不意味著您很不走運。實際上 還是 有辦法在腳本中調(diào)用 Dir 命令的;只不過您必須足夠聰明。由于 dir 是一個內(nèi)部命令,所以您只能調(diào)用命令行外科,然后將 Dir 作為一個命令行參數(shù)傳遞給它。讓我們看一個利用了這個技巧的腳本,然后具體解釋一下它的工作原理:
Set objShell = CreateObject("Wscript.Shell") objShell.Run("%comspec% /k dir"), 1, TRUE
腳本的第一行簡單創(chuàng)建了 WSH Shell 對象的一個實例,然后在第二行使用 Run 方法調(diào)用 dir 命令。但是,請注意:我們沒有直接指定 dir;而是指定了 %comspec% /k dir。該命令字符串可以被分解為下面這樣:
%comspec% |
打開一個命令行窗口。%comspec% 是一個指向當(dāng)前命令行外殼的環(huán)境變量。通過使用 %comspec%,您不必?fù)?dān)心命令行外殼是 cmd.exe 還是 command.exe;%comspec% 會自動選擇正確的一個。 |
/k |
在調(diào)用 Dir 命令后,確保窗口始終保持打開。這就是 /k 參數(shù)的用處。如果我們想要確保命令窗口會在 Dir 命令調(diào)用完成后被自動關(guān)閉,應(yīng)該將 /k (keep) 修改為 /c (close)。 |
dir |
運行 dir 命令。 |