vbscript下呼叫 Dir 命令的方法

2022-09-21 22:48:18 字數 1349 閱讀 2526

問:嗨,scripting guy!我想做一些看上去非常簡單的事情:在指令碼中呼叫 dir 命令。但是好像不起作用。怎樣實現我的想法呢?

-- cr, 墨西哥城,墨西哥

答:你好, cr.從你的郵件來看,你想做一件類似如下所示的簡單工作:

set obpnnypxrhjshell = createobject(程式設計客棧"wscript.shell") objshell.run("dir"), 1, true但是,您並沒有得到乙個當前資料夾中所有檔案的列表,而是得到了一條資訊the system cannot find the file specified(系統無法找到指定的檔案)。為什麼會這樣呢?

出現這個問題的原因是這樣的:您的計算機中實際上 並沒有 乙個叫做「dir」的檔案。您可以搜尋 dir.exe 或 dir.com;肯定無法找到它們。實際上,dir 是命令列外殼(cmd.exe 或 command.exe,具體情況根據所執行 windows 的版本而定)的乙個內部命令。也就是說,dir 命令只能在命令列視窗中使用。為了證明這一點,請開啟命令列視窗,輸入dir,然後按 enter 鍵。您應該看到當前目錄下的所有檔案和資料夾列表。現在開啟執行對話方塊,輸入dir,然後按 enter 鍵。您將看到一條如下所示的錯誤資訊:

但是,這並不意味著您很不走運。實際上 還是 有辦法在指令碼中呼叫 dir 命令的;只不過您必須足夠聰明。由於 dir 是乙個內部命令,所以您只能呼叫命令列外科,然後將 dir 作為乙個命令列引數傳遞給它。讓我們看乙個利用了這個技巧的指令碼,然後具體解釋一下它的工作原理:

set objshell = createobject("wsc") objshell.run("%comspec% /k dir"), 1, true指令碼的第一行簡單建立了 wsh shell 物件的乙個例項,然後在第二行使用 run 方法呼叫 dir 命令。但是,請注意:我們沒有直接指定 dir;而是指定了%comspec% /k dir。該命令字串可以被分解為下面這樣:

%comspec%

開啟乙個命令列視窗。%comspec% 是乙個指向當前命令列外殼的環境變數。通過使用 %comspec%,您不必擔心命令列外殼是 cmd.exe 還是 command.exe;%comspec% 會自動選擇正確的乙個。

/k

在呼叫 dir 命令後,確保視窗始終保持開啟。這就是 /k 引數的用處。如果我們想要確保命令視窗會在 dir 命令呼叫完成後被自動關閉,應該將 /k (keep) 修改為 /c (close)。

dir

執行 dir 命令。

本文標題: vbscript下呼叫 dir 命令的方法

本文位址: /ruanjian/vb/36457.html

python呼叫qt Qt 下呼叫 Python

qt是乙個跨平台的c 圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。先上 include 包含呼叫python相應的標頭檔案 include int main int argc,char ar 初始化python直譯器...

XP下呼叫RPC失敗

解決xp下執行rpc顯示 拒絕訪問 的問題 採用rpc通訊的服務程式,在win2000和win2003下都執行正常,但在xp下執行失敗,錯誤提示是 拒絕訪問 怎麼解決呢?解決方法如下 單擊 開始 單擊 執行 鍵入 gpedit.msc 然後單擊 確定 開啟組策略。開啟組策略後,選擇 計算機配置 管理...

繼續談下呼叫約定

今天寫了個dll是用extern c 匯出的,以前一直用.def檔案,結果出現了以下錯誤 無法解析的外部符號 declspec dllimport int cdecl setstatus int imp setstatus yahh z 該符號在函式 public void thiscall cte...