[解決済み] PowerShellから変数に格納されたコマンドを実行する
2022-04-23 14:55:07
質問
PowerShellでビルドして変数に格納したコマンドがあります。このコマンドは、次のコマンドを実行すると動作します。
ライトホスト
にコピー&ペーストし、標準の
cmd.exe
ウィンドウに表示されます。
このコマンドをスクリプトの中から実行するにはどうしたらいいですか?
Invoke-CommandやInvoke-Expressionの組み合わせをいくつか試しましたが、うまくいきませんでした。
このように変数を構築しました。
$cmd1 = $arcprg + $arcdir + "\" + $site1 + "-" + $hst + "-" + $yesterday + ".zip " + $logpath1 + "u_ex" + $yesterday + ".log"
この変数を画面に出力するとこのようになります。
7z.exe a -tzip c:\arc_logs\site-host-at-web1-100827.zip c:\inetpub\logs\logfiles\w3svc1\u_ex100827.log
解決方法は?
を使用しない別の方法を紹介します。
Invoke-Expression
ただし、2つの変数
(command:stringとparameters:array)です。私はこれでうまくいきました。仮に
7z.exe
がシステムパスにあります。
$cmd = '7z.exe'
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& $cmd $prm
コマンドが既知で(7z.exe)、パラメータのみが可変の場合、以下のようになります。
$prm = 'a', '-tzip', 'c:\temp\with space\test1.zip', 'C:\TEMP\with space\changelog'
& 7z.exe $prm
ちなみに。
Invoke-Expression
を1つのパラメータで指定した場合、私の場合、次のように動作します。
$cmd = '& 7z.exe a -tzip "c:\temp\with space\test2.zip" "C:\TEMP\with space\changelog"'
Invoke-Expression $cmd
追伸:私は通常、パラメータ配列を使用する方法を好みます。
の式を作るより、プログラムで合成する方が簡単です。
Invoke-Expression
.
関連
-
Powershellですべてのディスクレターを取得する方法
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PowerShellでコードをコメントアウトする方法とは?
-
[解決済み] Windows PowerShellの環境変数を設定する
-
[解決済み] PowerShellで文字列と変数を連結する方法は?
-
[解決済み] PowerShellでコマンドライン引数を処理する方法
-
[解決済み] PowerShellの*Nix 'which'コマンドに相当するもの?
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み】WindowsのPowershellでUnixのtailと同等のコマンドを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
このシステムでのスクリプトの実行を無効にするPowerShellソリューション
-
PowerShellを使用してレジストリを変更する
-
PowerShellのヒントとコツ
-
PowerShellの基本的な使い方のチュートリアル
-
PowerShell パラメータの相互排除の例
-
PowerShellで特殊記号をコンソールに出力する方法
-
コンソールに緑のチェックマークを挿入するPowerShellの実装
-
PowerShell DSC コンポーネント xExchange をリリースしました。
-
コマンドライン履歴のコマンドをコピーするPowerShellメソッド
-
PowerShell ローカルアカウントスクリプト共有の追加