删除临时文件夹中的所有内容,删除临时文件,并创建一个新临时文件

删除临时文件夹中的所有内容,删除临时文件,并创建一个新临时文件

问题描述:

我有一个我正在处理的脚本,用于删除临时文件夹(在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 
    } 

使用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

你为什么不干脆用递归删除项

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