Remove-Item : パス ‘D:\xampp\apが存在しないため検出できません。
というエラーが表示した。
[なんでエラーがでた?]
フォルダがないのに、削除を行ったためにエラーがでたようだ。
[対策は?]
フォルダがあるかどうかを確認して
フォルダがあれば削除をするようにif文を使う。
[検索してみた]
以下のページにTest-Pathコマンドを使ったif文があった。
https://technet.microsoft.com/ja-jp/scriptcenter/ff859516.aspx#EFAA
Test-Path C:\Scripts
この 1 行の簡単なコマンドでは、C:\Scripts フォルダーが存在する場合は True を返し、存在しない場合は False を返します。わかりやすくいメッセージを表示するスクリプトは、次のとおりです。
if (Test-Path C:\Scripts) { "C:\Scripts exists" } else { "C:\Scripts does not exist" }
[修正したスクリプト例]
#ログフォルダの削除 if(Test-Path D:\xampp\apache\logs\$domain){ Remove-Item -path D:\xampp\apache\logs\$domain -recurse -force }else{ echo "Not found D:\xampp\apache\logs\$domain " } #作業フォルダの削除 if(Test-Path E:\$domain){ Remove-Item -path E:\$domain -recurse -force }else{ echo "Not found E:\$domain" } #公開用フォルダの削除 if(Test-Path F:\xampp\$domain){ Remove-Item -path F:\xampp\$domain -recurse -force }else{ echo "Not found F:\xampp\$domain" }