vbscript - VB スクリプトでファイルのパスを構成する引数を渡すにはどうすればよいですか?

okwaves2024-01-25  8

bat ファイルを使用して .vbs ファイルに引数を渡していますが、その引数はフォルダーへのパスです。 そして、vb スクリプトでは引数を読んでおり、以下のように .exe ファイル上で実行したいと考えていました。

***var1 = Arg(0)
      msgbox "First parameter passed was " _
      & var1
WScript.Echo  var1
Set wshShell = CreateObject("Wscript.Shell")
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Exec("%var1%\Change SDMClient Installation.exe")***

しかし、最後の行ではエラーが発生します。

どうすれば解決できますか?



------------------------

%% を使用せず、次のように文字列を連結する必要があります。

  var1 = Wscript.Arguments(0)
  msgbox "First parameter passed was " _
  & var1


   WScript.Echo  var1
    Set wshShell = CreateObject("Wscript.Shell")
    Set objShell = WScript.CreateObject( "WScript.Shell" )
    pathToExec = var1 & "\Change SDMClient Installation.exe"
    pathToExec = chr(34) & pathToExec & chr(34)
    wscript.echo pathToExec
    objShell.Exec(pathToExec)

6

エラーが発生しています。 WshShell.Exec: test.vbs(11, 3) WshShell.Exec: 指定されたファイルが見つかりません。 Dim objShell Dim Arg, var1 Set Arg = WScript.Arguments var1 = Arg(0) msg​​box "最初に渡されたパラメータは " でした。 _ & var1 WScript.Echo var1 Set wshShell = CreateObject("Wscript.Shell") Set objShell = WScript.CreateObject( "WScript.Shell" ) pathToExec = var1 & 「\SDMClient Installation.exe を変更」 objShell.Exec(pathToExec)

– ラダクリシュナ スワミー K

2020 年 9 月 3 日 21:15

あなたはss 引数へのディレクトリの相対パスを指定すると、それが親ディレクトリとして使用され、ディレクトリ内で Change SDMClient Installation.exe が起動されます。たとえば、ファイルが C:\Users\your_user\Desktop\Change SDMClient Installation.exe にあり、引数を C:\Users\your_user\Desktop として渡すとします。このスクリプトはその引数をディレクトリとして想定し、その中のプログラムを起動します。 pathToExec = var1 & という行に注目してください。 「\SDMClient インストールの変更.exe」。正確なパスを教えていただければ、さらにお手伝いいたします。

– AkkixDev

2020 年 9 月 4 日 5:04

「」を開始「C:\Users\skasturi\OneDrive - Avaya\Desktop\test.vbs」 C:\Backup\SDM_CompanySDMClient_installation このパス (C:\Backup\SDM_CompanySDMClient_installation) を vb スクリプトの引数として渡します。 C:\Backup\SDM_CompanySDMClient_installation と Change SDMClient Installation.exe はこのフォルダ内にあります。

– ラダクリシュナ スワミー K

2020 年 9 月 4 日 5:25

私のマシンでテストしたところ、正常に動作しました。次のように引数として文字列を渡すようにしてください。 start "C:\Users\skasturi\OneDrive - Avaya\Desktop\test.vbs" 「C:\Backup\SDM_CompanySDMClient_installation」 。基本的にスクリプトは、引数として渡したものをすべてフォルダーとして使用し、そのフォルダー内で Change SDMClient Installation.exe を実行します。これがお役に立てば幸いです。そうであれば、これを回答としてマークしてください。

– AkkixDev

2020 年 9 月 4 日 5:41

bat ファイルからの出力。 「」を開始します。 「C:\Users\skasturi\OneDrive - Compa」ny\デスクトップ\test.vbs" 「C:\Backup\SDM_SDMClient_installation」 ) else (echo sdm クライアントのインストールを続行しています) プログラムが見つかりました。vbs ファイル WScript.Echo var1 に、二重引用符で囲まれていないパスが表示されています - WScript.Echo var1 - C:\Backup\SDM_SDMClient_installation -

– ラダクリシュナ スワミー K

2020 年 9 月 4 日 8:08

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。