我有一个我正在处理的脚本,用于删除临时文件夹(在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
}
答案 0 :(得分: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')并创建文件夹,而不管上一个命令的结果如何。
答案 1 :(得分:1)
为什么不简单地使用递归删除项删除临时文件夹
# Remove recursively
Remove-Item -Path "\\$server\admin$\Temp" -Force -Recurse
# Create another one
New-Item -Path "\\$server\admin$\Temp" -Type Directory