17

我有一个 Powershell 脚本,它做了很多事情,其中​​之一是移动文件:

$from = $path + '\' + $_.substring(8)
$to   = $quarantaine + '\' + $_.substring(8)

Move-Item $from $to

但它碰巧目录结构还没有出现在$to路径中。所以我希望 Powershell 用这个突击队来创建它。我试过Move-Item -Force $from $to了,但这并没有帮助。

我可以做些什么来确保 Powershell 创建所需的目录以使事情正常进行?
我希望我说清楚,如果没有,请询​​问!

4

3 回答 3

17

您可以自己创建它:

$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
于 2012-12-17T12:18:02.550 回答
6

您可以使用 system.io.directory .NET 类来检查目标目录并在它不存在时创建。这是使用您的变量的示例:-

if (!([system.io.directory]::Exists($quarantine))){
   [system.io.directory]::CreateDirectory($quarantine)
}
Copy-File $from $to
于 2012-12-18T00:09:38.557 回答
0

你也可以像这样添加一个实用函数:

Function Move-Item-Parent([string]$path, [string]$destination) {
    New-Item $destination -ItemType Directory -Force
    Move-Item $path $destination
}

然后像这样调用它:

Move-Item-Parent $from $to
于 2021-12-28T14:25:13.773 回答