簡體   English   中英

刪除臨時文件夾的內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM