Powershell';移动项目';不';如果没有';不存在

Powershell';移动项目';不';如果没有';不存在,powershell,Powershell,我有一个Powershell脚本,它可以做很多事情,其中之一就是移动文件: $from = $path + '\' + $_.substring(8) $to = $quarantaine + '\' + $_.substring(8) Move-Item $from $to 但碰巧的是,$to路径中还没有目录结构。所以我想让Powershell用这个突击队来创建它。我尝试了将物品从$Move-Force$移动到,但没有效果 如何确保Powershell创建所需的目录以使事情正常运行?

我有一个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,甚至可以自己编写。