アプリ版:「スタンプのみでお礼する」機能のリリースについて

cmdshell(bat)からpowershell(ps1)に移行しようと勉強しているものです。
ごく初歩的なことだと思うのですが、わからないので質問します。
環境はWindows8.1、PowerShell ISEを使用しています。

下記のように引数を実行ファイルに渡すと、渡したファイルが操作されます。
-------------------------------
D:\...\abc.exe $Args
-------------------------------
これであれば正常に機能するのですが、

-------------------------------
$abc = "D:\...\abc.exe"
$abc $Args
-------------------------------
とするとエラーになってしまいます。

これは一体なぜなのでしょうか。
解決方法をご教授願いたいと思います。よろしくお願いします。

A 回答 (1件)

$abc


と打っただけでは $abc の中身が出力されるだけ。
つまり外部プログラムのパス文字列が出力される。
これではパス文字に書かれたプログラムを実行できない。

D:\...\abc.exe
のように外部プログラムのパスを変数に入れずに書いた場合、PowerShell は "外部コマンド" として実行してくれる。

外部プログラムのパスを変数に入れて実行する場合は以下のようにする。

起動しっぱなしなら先頭に & を付けて
$ $abc $Args

起動したアプリの終了を待つなら
Start-Process -FilePath $abc -ArgumentList $arg -Wait
    • good
    • 1
この回答へのお礼

先頭に&を入れたら無事動作しました!
変数を実行するのに&必要なのですね
ありがとうございました。助かりました。

お礼日時:2014/09/19 16:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!