0

我有一个正在处理的脚本,旨在删除临时文件夹(在 C 盘中),删除临时文件夹中的所有内容,然后创建一个新的临时文件夹。我已经创建了删除所有内容的脚本,但是我不确定你如何使用 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 
    }
4

2 回答 2

1

使用New-Itemcmdlet 创建文件夹:

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 
}

ps 您也可以将 Force 开关添加到 New-Item(或“md”)并创建文件夹,而不管上一个命令的结果如何。

于 2012-07-23T19:13:34.960 回答
1

为什么不简单地使用递归删除项删除临时文件夹

# Remove recursively
Remove-Item  -Path "\\$server\admin$\Temp" -Force -Recurse
# Create another one
New-Item -Path "\\$server\admin$\Temp" -Type Directory 
于 2012-07-23T19:54:39.763 回答