連携 コマンドプロンプトCMDexeコマンド送信

VB&VBA
FROG ふろっぐ
 
  • オプション

    本文印刷

    お気に入りに追加

  • 検索

    Googlewwwjp-ia
     

    Googlewwwjp-ia
     
  • 情報

  • 関連

[VB&VBA][連携 コマンドプロンプトCMDexeコマンド送信]
Option Explicit


Sub CMDexeSend()
'*************************************
'コマンドプロンプトCMDexeコマンド送信
'*************************************

Dim strCommand As String
Dim strPath As String

strCommand = "VER" 'Windowsのバージョン取得コマンド

'基本

'終了後コマンドプロンプトCMDexeを閉じる
'Call Shell("Command.com /c " & strCommand) 'Win9X
'Call Shell("CMD.exe /c " & strCommand)     'WinNT
'Call Shell("CMD /c " & strCommand)         'WinNT

'終了もコマンドプロンプトCMDexeを閉じない
'Call Shell("Command.com /k " & strCommand) 'Win9X
'Call Shell("CMD.exe /k " & strCommand)     'WinNT
'Call Shell("CMD /k " & strCommand)         'WinNT

'【Environ関数】
'   オペレーティングシステムの環境変数に割り当てられた文字列型を返します
'【環境変数】
'ComSpecから取得

'Call Shell(Environ$("ComSpec") & " /c " & strCommand) 'Win9X & WinNT
'Call Shell(Environ$("ComSpec") & " /k " & strCommand) 'Win9X & WinNT

'引数にてウィンドを制御
'Call Shell(Environ$("ComSpec") & " /k " & strCommand, vbNormalFocus)

strCommand = "dir"
strPath = "c:\temp"
'Call Shell(Environ$("ComSpec") & " /k " & strCommand & " " & strPath, vbNormalFocus)
'※上記のように" "半角空白はコマンドプロンプトにとって大きな意味を持ちます
'例えば
strPath = "c:\Documents and Settings\XXX"
'の場合
'Call Shell(Environ$("ComSpec") & " /k " & strCommand & " " & strPath, vbNormalFocus)
'ではエラーになります(CMD.exeは実行されます)

strPath = Chr$(34) & "c:\Documents and Settings\XXX" & Chr$(34)
'又は
strPath = """c:\Documents and Settings\XXX"""
'又は
strPath = Chr$(34) & strPath & Chr$(34)
'で回避できます

Call Shell(Environ$("ComSpec") & " /k " & strCommand & " " & strPath, vbNormalFocus)

End Sub

<関連>





Production Japan Import Application. Since 1998