皆さま、よろしくお願いいたします。
###前提・実現したいこと
Powershellで外部ファイル(PS1形式)を、
引数付きで実行したい。
シェルプログラムを2つ作りました。
プログラム1)
テキストファイルを読み込んで、
行単位で、プログラム2を実行し、行を引数として渡す。
プログラム2)
プログラム1から引数を受け取って、別の処理をする。
###発生している問題・エラーメッセージ
引数無しの場合、期待した通り実行されます。
引数付きの場合、クオート等の記述状態によって、
まったく無視されたり、エラーになります。
例1)
コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
例2)
式またはステートメントのトークン '$MyCMD' を使用できません。
例3)
式またはステートメントのトークン '""' を使用できません。
###ソースコード
プログラム1
# 引数ネタとなるテキストファイル $File = ”テキストファイルのパス” # スクリプト名 $mySelf = "プログラム2のパス" # 出力先 $oPath = Split-Path $File -parent # 行数ループ foreach ($TextLine in Get-Content $File) { $MyCMD = " -iPath ""$TextLine"" -oPath ""$oPath"" " #write-host $MyCMD & $mySelf "$MyCMD" }
プログラム2
param( [string]$iPath , [string]$oPath ) Write-Host "引数1" $iPath Write-Host "引数2" $oPath
引数ネタのテキストファイル
※行にスペースを含む
(ローカルのパス情報1) (ローカル の パス情報 2) ・ ・ ・ (ローカルのパス情報n)
###補足情報(言語/FW/ツール等のバージョンなど)
OS Win10 Pro
PS
Name Value
PSVersion 5.0.10586.0
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.0
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/16 05:33