2

私は非常に慣れてpowershellいないため、この質問は非常に単純な場合があります

PowerShellで次の(vbscript)に相当するものを教えてください。

set obj = wscript.createobject( wscript.shell )  
Obj.Run $smCmnd  

の用途は何ですかwscript.shell
少し検索した後、最初の行は次のように表示できることがわかりました。

$obj  = New-Object -ComObject WScript.Shell  

しかし、Run メソッド ( $obj.run(...) ???) を呼び出す方法がわかりません

cmd.exeとしていくつかのコマンドを実行した場合smCmnd、cmd.exe を閉じずに保持し、後で同じコンソールで別のコマンドを実行するにはどうすればよいですか??

編集
私は書いPS scriptていますが、別のアプリケーションから呼び出されます。基本的に、いくつかのフォルダーの作成やファイルのコピーなどを行います。CMD.exe を開いて、その上で実行されているすべてのコマンドを表示したいと思います。スクリプト全体で同じ cmd プロンプトを使用する方法。

4

3 に答える 3

1

$smCmnd直接実行してみてください。それが失敗した場合は、 を使用しますInvoke-Expression $smCmnd

于 2013-07-19T18:55:54.553 に答える
0

CMD.EXE を使用する必要があり (おそらく既存の BAT ファイルを実行したいため)、すべての出力を単一の CMD ウィンドウに表示したい場合は、次のようにすべての入力を一度に cmd にパイプできます。

# Powershell script to execute existing BAT file
cmd.exe /k "cd c:\batchfiles & firstone.bat & second.bat & echo that's all folks"
# CMD will remain open (/k). User will have to type exit to return to powershell

# Or if you want user just to hit any key to leave CMD prompt:
cmd.exe /c "c:\batchfiles\mybatchfile.bat & pause"
# /C means CMD should close after is has executed the commands on the command line

ただし、CMD で何かを実行したい場合は、Powershell スクリプトで CMD で次に何を実行するかを決定してから、powershell スクリプトと CMD.exe の間で入力と出力をパイプする次のリンクの回答と同様のことを行います。 .

powershell から別のアプリケーション ウィンドウでインタラクティブ コマンドを実行する方法

于 2013-07-20T23:30:29.003 に答える