2017-10-06 24 views
-1

私はVBscriptファイルを持っています。私はWindowsの2012サーバー上でCScriptを使ってこのVBscriptを実行します。 VBscriptは、サーバー上で正常に実行されます。PowershellからVBScriptを呼び出す。これを行うにはこの正しい方法ですか?

しかし、私はPowershellからこのVBScriptファイルを呼び出す必要があります。これは私がやったことです。簡単にするために、これは私がそれを実行するための正しい方法であるtest.ps1に

$acommand = "C:\Windows\System32\Cscript.exe C:\deleteit\echo.vbs" 

    Invoke-Expression $acommand 
+0

...とは?可能であれば、VBSをPSに変換してこれを避けることをお勧めします。基本的には、最新のスクリプト言語から古いスタイルのスクリプト言語を呼び出します。あなたが1つのプラットフォームに固執すれば、より簡単になります –

+1

どうしてそんなことをしていますか? exeを実行する正しい方法は、exe *を実行することです。 PowerShellはシェルであり、直接実行することができます。 PS C:\> C:\ windows \ system32 \ cscript.exe c:\ deleteit \ echo.vbs' – TessellatingHeckler

+0

PS C:\> C:\> cd c:\ windows \ system32 \ cscript.exe c:\ deleteit \ echo.vbs C:\> cd: 'C:\> cd'という用語は、コマンドレット、 関数、スクリプトファイル、または実行可能なプログラムの名前として認識されません。名前の綴りを確認するか、パスが含まれている場合は を確認し、パスが正しいことを確認してもう一度やり直してください。 行:1文字:1 + C:¥> cd c:¥windows¥system32¥cscript.exe c:¥deleteit¥echo.vbs + ~~~~~~ + CategoryInfo:ObjectNotFound :(C: \> cd:String)[]、CommandNotFo undException + FullyQualifiedErrorId:CommandNotFoundException – Jason

答えて

0

を書いた私はVBScriptファイルに持っているもの

echo.vbs

Msgbox("hello world") 

ですexeまたはVBSスクリプトを使用している場合は、同じ方法を使用することができます。

個人的に、私はむしろ、外部VBSスクリプトを呼び出すPowerShellスクリプトに機能を追加するために探していることになるが、それはちょうど私の2セントの価値がある:)何が起こっ

+0

" *これは外部アプリケーションを実行するための正しい方法です "*そうではありません。アプリケーションを直接実行するのが最も適切です。 '&'コール演算子は、パス内のスペースを処理する文字列内になければならない場合に最も適切です。引数を指定してプレイする必要がある場合は、 'Start-Process'が最も適切です窓のスタイルと待っています。 'Invoke-Expression'は最小限の権利です。これはpowershellコマンドを文字列にラップし、powershellエンジンに戻します。円形で冗長です。文字列から取り出され、invoke-expressionに渡されなかった場合、文字列にあったものは何でも問題ありません。 – TessellatingHeckler

+0

@TessellatingHecklerこの問題は、PowerShellを使用するだけでなく、最初のようにVBScriptを使用しています。私はガレスが言うことは、あなたがどちらにも同意すれば、間違っているとは思わない。 – Lankymart

+0

私はpowershellを使用していない理由があります。私が書いたVBスクリプトはDLLを使用しています。私がボックスに登録しても、PowerShellはそれが見つからないと言っています。しかし、VBScriptはDLLを見ることができます。だから私はVBscriptを使用しなければならなかった – Jason

関連する問題