あなたの専門家の助けが必要です(私自身の笑いを試して3日後)。スクリプトの失敗部分:Powershell Quotes asisstanceを使用
$yy=(get-date).Year
Invoke-Command -ComputerName *ipaddress* -Credential $moveitcred {
move-item -path "C:\iCApps\Dev\LetterGenerator\Letters\FTS\EDMS\*.txt" -destination "C:\Moveitft\Dev\Letters\Outbound" -force
Start-Process -FilePath "C:\Program Files\7-Zip\7z.exe" -ArgumentList "a -y C:\Moveitft\Dev\Letters\archive\Letters$yy_.zip C:\Moveitft\Dev\Letters\Outbound\*.*"
}
動きがうまくいきます。そして、引数リストに年varible($ yy)を含める場合を除いて、zipは正常に動作します。 Powershellはファイル名を調整するために変数を設定したくありません。 $ nullを引用して爆発するか、$ yyがあるはずの空白で作業が完了します。
プロンプトからちょうど$ yyを実行すると、正しい年の値が返されるため、不適切な引用符を使用していると思います。しかし、3日間のグーグルリングの後、さまざまな組み合わせを自分で試してみたら、タオルを投げています。すべてのヘルプ/ガイダンスはとてもいただければ幸いです:)
対象のサーバーと呼び出し元の年とが異なると想定する理由はありますか?スクリプトブロックの中でStart-Process行の前に$ yyを宣言して、それが必要なものかどうかを確認してください。それ以外の場合は、Invoke-Commandと一緒に-ArgumentListを使用する必要があります。 – notjustme
正解! mjsrシニアもありがとう、実際にはそれについて昨日考えています。そしてあなたにも今朝それを確認しました:)これは解決しました - スクリプトブロックで宣言してください! –