Powershell 删除temp文件夹中的所有内容,删除temp并创建新的temp

Powershell 删除temp文件夹中的所有内容,删除temp并创建新的temp,powershell,code-cleanup,virtual-server,Powershell,Code Cleanup,Virtual Server,我有一个脚本,我正在工作的目的是删除临时文件夹(在C磁盘),删除所有在临时,然后创建一个新的临时文件夹。我已经创建了删除所有内容的脚本,但是我不确定如何使用Powershell创建新的临时文件夹。我想知道是否有人知道如何在Powershell中创建新的临时文件夹 #remove all temporary files if($serverVersion.name -like "*2003*"){ $dir = "\\$server" + '\C$\temp' } elseif($serv

我有一个脚本,我正在工作的目的是删除临时文件夹(在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 
    }

使用
New Item
cmdlet创建文件夹:

New-Item -Path "\\$server\admin$\Temp" -Type Directory 
您还可以使用“md”别名(指向mkdir函数):

更新:

下面是我要做的:删除目录。检查美元?变量(如果最后一个命令成功,则返回$true),如果命令未成功完成,则创建临时文件夹,否则肯定有错误且临时目录仍然存在

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

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

p、 您还可以将强制开关添加到新项(或“md”)并创建文件夹,而不考虑上一个命令的结果。

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

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

嗨,Shay,给你一个简单的问题:admin$做什么?这是一种允许获取任何磁盘而不仅仅是C磁盘的不同方法吗?以前从未见过,curiousadmin$是一个管理共享(由windows创建),指向每台服务器上的windows目录。有意思。。在我的例子中,在脚本的前面,用户决定使用哪个特定服务器。我想知道的是,仅仅这样做,以及对W2K3和W2k8使用递归的remove项是否会与我目前编写的所有代码做相同的事情?为了简单起见,我想把所有这些都减少到两行。这两个服务器版本的工作原理应该是一样的。从您的运行框类型:\\server2003\admin$和\\server2008\admin$再次尝试此操作。这两个命令都应打开远程Windows文件夹。我测试了您的方法,其工作原理与以前类似,但减少了代码量!我遇到了一个错误,但是当我删除所有内容时,Temp中有一个目录不是空的,我无法递归并删除这一项。我想知道是否有什么方法可以绕过这个问题,这样我就可以重新创建一个新的临时目录
# Remove recursively
Remove-Item  -Path "\\$server\admin$\Temp" -Force -Recurse
# Create another one
New-Item -Path "\\$server\admin$\Temp" -Type Directory