web-dev-qa-db-ja.com

バッチファイルからvbscriptを実行する

Vbscriptを実行するために単純なバッチファイルを作成するだけです。 vbscriptはバッチで実行できるため、vbscriptとバッチファイルは同じフォルダーにあり、SysWOW64ディレクトリにあります。現在、私のバッチファイルは次のとおりです。

@echo off
%WINDIR%\SysWOW64\cmd.exe
cscript necdaily.vbs

しかし、vbscriptは実行されず、コマンドPromptのみが開いています。このバッチファイルを実行するときにvbscriptを実行するにはどうすればよいですか?ありがとう。

24
user918197

%~dp0を使用して、現在実行中のバッチファイルのパスを取得できます。

実行前にディレクトリをVBSの場所に変更するように編集

VBSを同じウィンドウで同期的に実行する場合は、

@echo off
pushd %~dp0
cscript necdaily.vbs

VBSを新しいウィンドウで同期的に実行する場合は、

@echo off
pushd %~dp0
start /wait "" cmd /c cscript necdaily.vbs

VBSを同じウィンドウで非同期に実行する場合は、

@echo off
pushd %~dp0
start /b "" cscript necdaily.vbs

VBSを新しいウィンドウで非同期に実行する場合は、

@echo off
pushd %~dp0
start "" cmd /c cscript necdaily.vbs
40
dbenham

これはバッチファイル用のコマンドであり、vbscriptを実行できます。

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs
8
user918197

バッチファイルは行ごとに処理され、実行可能ファイルを直接呼び出すたびに終了します。
-プロセスが終了して続行するまでバッチファイルを待機させるには、callをその前に置きます。
-待機せずにバッチファイルを続行するには、start ""その前。

次の1行のスクリプトを使用して目標を達成することをお勧めします。

@call cscript "%〜dp0necdaily.vbs"

(これは1行なので、@ echo offの代わりに@を使用できます)

SysWOW64バージョンのcmd.exeからのみスクリプトを呼び出すことができると思われる場合は、次のことを試してください。

@%WINDIR%\ SysWOW64\cmd.exe/c call cscript "%〜dp0necdaily.vbs"

ウィンドウを残す必要がある場合は、/ cを/ kに置き換えることができます。

5

まあ、私は開くをクリックせずにバッチファイル内の.vbsを開こうとしていますが、この質問の答えは...

SET APPDATA =%CD%

開始(vbdファイルの場合は、.vbsで角括弧なしでここにファイル)

それが役立つことを願っています:)

このコードを試してください:

開始 "" "C:\ Users\DiPesh\Desktop\vbscript\welcome.vbs"

.batとして保存すると、うまくいきます

1
DIpesh