[英]Remove everything in temp folder, delete temp, and make a new temp
[英]Delete contents of temp folder
我有以下代碼片段,該代碼片段當前刪除了我的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}
}
我正在嘗試將代碼稍作更改,使其不再刪除temp目錄,而只是刪除temp內部的所有內容。 我在$dir
變量的末尾添加了\\*
,以便它嘗試將所有項目都保留在temp中,而不是刪除Temp本身。 但是,運行此命令時,我不會刪除任何內容。 我的代碼有什么問題?
只要您滿足先決條件並完全控制Temp下的所有文件/文件夾,這對我就有效
# Prerequisites
# Must have the PowerShell ActiveDirectory Module installed
# Must be an admin on the target servers
#
# however if you have no permissions to some folders inside the Temp,
# then you would need to take ownship first.
#
$Server = "server Name"
$dir = "\\$Server\admin$\Temp\*"
$OS = (Get-ADComputer $Server -Properties operatingsystem).operatingSystem
IF (($os -like "*2003*") -or ($os -like "*2008*"))
{
remove-item $dir -Recurse -force
}
根據PowerShell的remove-item
幫助文件, -recurse
參數錯誤。 建議您使用get-childitem
並通過管道remove-item
。 請參閱下面的幫助文件中的示例。
-------------------------- EXAMPLE 4 --------------------------
C:\PS>get-childitem * -include *.csv -recurse | remove-item
弄清楚如何做到這一點,並認為將來對某人可能有用。
if($serverVersion.name -like "*2003*"){
$dir = "\\$server" + '\C$\WINDOWS\Temp'
Get-ChildItem -path $dir -Recurse | %{Remove-Item -Path $_.FullName -Force}
if($?){new-item -path "\\$server\admin$\Temp" -Type Directory}
}
elseif($serverVersion.name -like "*2008*"){
$dir = "\\$server" + '\C$\Windows\Temp'
Get-ChildItem -path $dir -Recurse | %{Remove-Item -Path $_.FullName -Force}
write-host "success?"
if($?){New-Item -Path "\\$server\admin$\Temp" -Type Directory}
}
使用get-childitem它將查看Temp內部的所有內容,而不會刪除Temp本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.