У меня есть следующий фрагмент кода, который в настоящее время удаляет все в моем временном каталоге и повторно добавляет новый каталог temp.Удалить содержимое папки temp
if($serverVersion.name -like "*2003*"){
$dir = "\\$server" + '\C$\WINDOWS\Temp\*'
remove-item $dir -force -recurse
if($?){new-item -path "\\$server\admin$\Temp" -Type Directory}
}
elseif($serverVersion.name -like "*2008*"){
$dir = "\\$server" + '\C$\Windows\Temp\*'
remove-item $dir -force -recurse
if($?){New-Item -Path "\\$server\admin$\Temp" -Type Directory}
}
Я пытаюсь немного изменить код, где она больше не будет удалить временную директорию и вместо того, чтобы просто удалить все содержимое внутри температуры. Я добавил \*
в конце моей переменной $dir
, чтобы попытаться получить все элементы внутри темпа, а не удалять сам Temp. Когда я запускаю это, я ничего не удаляю. Что не так с моим кодом?
Вам не нужно% {} вокруг Remove-Item. Он принимает массив (из Get-ChildItem) в качестве входного. –
Одна вещь, которую я не понимаю, - это то, почему вы дифференцируетесь между 2003 и 2008 годами, когда ваш код одинаковый в обоих блоках. Если вы не думаете, что путь к каталогу чувствителен к регистру, чего нет в Windows. – crownedjitter
Это всего лишь небольшой фрагмент кода, он получает гораздо больше, чем просто темп, и некоторые вещи, которые у него есть, имеют разные пути. – Valrok