Powershell';移动项目';不';如果没有';不存在
我有一个Powershell脚本,它可以做很多事情,其中之一就是移动文件:Powershell';移动项目';不';如果没有';不存在,powershell,Powershell,我有一个Powershell脚本,它可以做很多事情,其中之一就是移动文件: $from = $path + '\' + $_.substring(8) $to = $quarantaine + '\' + $_.substring(8) Move-Item $from $to 但碰巧的是,$to路径中还没有目录结构。所以我想让Powershell用这个突击队来创建它。我尝试了将物品从$Move-Force$移动到,但没有效果 如何确保Powershell创建所需的目录以使事情正常运行?
$from = $path + '\' + $_.substring(8)
$to = $quarantaine + '\' + $_.substring(8)
Move-Item $from $to
但碰巧的是,$to
路径中还没有目录结构。所以我想让Powershell用这个突击队来创建它。我尝试了将物品从$Move-Force$移动到,但没有效果
如何确保Powershell创建所需的目录以使事情正常运行?
我希望我说清楚,如果没有,请问 您可以自己创建它:
$from = Join-Path $path $_.substring(8)
$to = Join-Path $quarantaine $_.substring(8)
if(!(Test-Path $to))
{
New-Item -Path $to -ItemType Directory -Force | Out-Null
}
Move-Item $from $to
您可以使用system.io.directory.NET类检查目标目录,如果它不存在,则创建目标目录。
下面是一个使用变量的示例:-
if (!([system.io.directory]::Exists($quarantine))){
[system.io.directory]::CreateDirectory($quarantine)
}
Copy-File $from $to
看这个问题:这就是我已经尝试过的,没有运气。如我的问题中所述,您可以进行复制和删除。-路径类型容器
不是新项目
的参数。删除此项,它将按预期工作。为什么您要在更简单和更常见的测试路径上使用此项
/新项
?@NelsonRothermel在撰写本文时,我是powershell的新手,不知道他们的存在,我给出的答案是当时我将如何做到这一点-这是4年前的事了。这些天我确实会使用test path/new item。@Nelson Rothermel这实际上是我发现powershell的一个非常好的地方-如果你是在.NET背景下使用它的话,你所使用的很多东西都是可移植的,并且可以在powershell中轻松地重用。若并没有一个cmdlet可以满足您的需要,但有一个.NET类可以满足您的需要,那个么问题就解决了!太好了,谢谢。我只是想知道是否有什么我不知道的。我很喜欢你可以根据需要使用完整的.NET,甚至可以自己编写。