潜在的な robots.dev.txt を robots.txt にコピーするPowerShell 2.0スクリプトの展開の一部があります。存在しない場合は何もしません。
私の元のコードは次のとおりです。
$RobotFilesToOverWrite= Get-ChildItem -Path $tempExtractionDirectory -Recurse -Include "robots.$Environment.txt"
foreach($file in $RobotFilesToOverWrite)
{
$origin=$file
$destination=$file -replace ".$Environment.","."
#Copy-Item $origin $destination
}
ただ、C#との違いは$RobotFilesToOverWriteがnullでもforeachにコードが入っていることです。
だから私はすべてを囲む必要がありました:
if($RobotFilesToOverWrite)
{
...
}
これは最終的なコードです:
$RobotFilesToOverWrite= Get-ChildItem -Path $tempExtractionDirectory -Recurse -Include "robots.$Environment.txt"
if($RobotFilesToOverWrite)
{
foreach($file in $RobotFilesToOverWrite)
{
$origin=$file
$destination=$file -replace ".$Environment.","."
#Copy-Item $origin $destination
}
}
それを達成するためのより良い方法があるかどうか疑問に思っていましたか?
編集: この問題は PowerShell 3.0 で修正されたようです