Powershell 删除temp文件夹中的所有内容,删除temp并创建新的temp
我有一个脚本,我正在工作的目的是删除临时文件夹(在C磁盘),删除所有在临时,然后创建一个新的临时文件夹。我已经创建了删除所有内容的脚本,但是我不确定如何使用Powershell创建新的临时文件夹。我想知道是否有人知道如何在Powershell中创建新的临时文件夹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
#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