2012-07-23 117 views
0

我有一個我正在處理的腳本,用於刪除臨時文件夾(在C盤中),刪除temp中的所有內容,然後創建一個新的臨時文件夾。我已經創建了腳本來刪除所有內容,但我不確定如何使用Powershell創建新的臨時文件夾。想知道是否有人可能知道如何在Powershell中創建新的臨時文件夾。刪除臨時文件夾中的所有內容,刪除臨時文件,並創建一個新臨時文件

#remove all temporary files 
if($serverVersion.name -like "*2003*"){ 
    $dir = "\\$server" + '\C$\temp' 
} 
elseif($serverVersion.name -like "*2008*"){ 
    $dir = "\\$server" + '\C$\Windows\Temp' 
    } 

$tempArray = @() 
foreach ($item in get-childitem -path $dir){ 
    if ($item.name -like "*.tmp"){ 
     $tempArray = $tempArray + $item 
     } 
    } 

for ($i = 0; $i -le $tempArray.length; $i++){ 
    $removal = $dir + "\" + $tempArray[$i] 
    remove-item $removal -force -recurse 
    } 

我是否正確刪除臨時文件夾,以及,我將不得不做什麼來創建一個新的臨時文件夾?

編輯:

if($serverVersion.name -like "*2003*"){ 
    $dir = "\\$server" + '\C$\temp' 
    remove-item $dir -force -recurse 
    new-item -path "\\$server" + '\C$\Windows\temp' -Type Directory 
} 
elseif($serverVersion.name -like "*2008*"){ 
    $dir = "\\$server" + '\C$\Windows\Temp' 
    remove-item $dir -force -recurse 
    New-Item -Path "\\$server" + '\C$\Windows\Temp' -Type Directory 
    } 

回答

1

使用New-Item:我基於什麼人建議,想知道,這將有預期的效果,以及是否有進一步削減下來的方式更新我的代碼cmdlet創建的文件夾:

New-Item -Path "\\$server\admin$\Temp" -Type Directory 

您也可以使用 'MD' 的別名(指向MKDIR功能):

md "\\$server\admin$\Temp" -Force 

更新:

這是我會做的:刪除目錄。檢查$?變量(如果最後一個命令成功,則返回$ true),如果命令沒有成功完成 - 創建Temp文件夾,否則肯定有錯誤,Temp目錄仍然存在。

Remove-Item -Path "\\$server\admin$\Temp" -Force -Recurse 

if($?) 
{ 
    New-Item -Path "\\$server\admin$\Temp" -Type Directory 
} 

p.s.您也可以將Force開關添加到New-Item(或'md')並創建文件夾,而不管前一個命令的結果如何。是什麼ADMIN $做到:

+0

喜吉文,雅快速的問題刪除臨時文件夾?那是一種允許獲得任何磁盤而不僅僅是C盤的另一種方法嗎?從未見過之前和好奇 – Valrok 2012-07-23 20:07:20

+2

admin $是一個管理共享(由windows創建),指向每個服務器上的windows目錄。 http://en.wikipedia.org/wiki/Administrative_share – 2012-07-23 20:23:48

+0

有趣的..在我的情況下,然而在腳本的早些時候,用戶決定要使用哪個特定的服務器。不知道是否,只會這樣做,而且對於W2K3和W2k8的移除項目都會執行與我目前編寫的所有代碼相同的內容?爲了簡單起見,我們很樂意將所有這些切成兩行。 – Valrok 2012-07-23 20:50:44

1

你爲什麼不乾脆用遞歸刪除項

# Remove recursively 
Remove-Item -Path "\\$server\admin$\Temp" -Force -Recurse 
# Create another one 
New-Item -Path "\\$server\admin$\Temp" -Type Directory