首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VB6:Shell 執行 DOS 指令時,變數無法用 %VAR% 方式傳遞

     編輯:程式設計綜合問答

問題

想在 VB6 中用 Shell 執行 mkdir %LOGPATH%,但 %LOGPATH% 是 VB 變數,非環境變數,無法直接在命令字串中展開。

錯誤寫法

Shell "cmd /k mkdir %LOGPATH%", vbNormalNoFocus ' ❌ %LOGPATH% 會被當成字面字串

正確寫法:字串串接

Dim logPath As String
logPath = "C:\MyLogs\20240115" ' VB 變數
Shell "cmd /k mkdir """ & logPath & """ > nul 2>&1", vbNormalNoFocus

關鍵點

  • %...% 是 **批次檔(.bat)變數** 語法,VB 字串中無特殊含義。
  • 路徑含空白時需用雙引號包裹,VB 中寫成 """ & path & """。
  • > nul 2>&1 抑制輸出訊息(可選)。
  • 若需隱藏視窗,可用 vbHide 取代 vbNormalNoFocus。

進階:取得真正的環境變數

若 LOGPATH 是系統環境變數,VB 可用 Environ$("LOGPATH") 讀取:

Shell "cmd /k mkdir """ & Environ$("LOGPATH") & """", vbNormalNoFocus
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved