Out-File -force,不创建中间目录

时间:2009-04-02 23:51:19

标签: powershell

我的代码是:

$path = "c:\no-such-dir\00.txt"
"foo" | Out-File -force -filePath $path

错误:

  

Out-File:找不到的一部分   路径'C:\ no-such-dir \ 00.txt'

帮助out-file -full

  

例如,Force将覆盖   只读属性或创建   目录来完成文件路径,   但它不会尝试更改文件   权限。

所以它似乎应该创造'no-such-dir',但事实并非如此。会发生什么?

2 个答案:

答案 0 :(得分:9)

这看起来像个错误。根据{{​​3}},此问题已在MS Connect上提交。

答案 1 :(得分:6)

正如迈克尔所说,这看起来像一个错误(或虚假广告!)。

编辑:我最初认为“>”操作员工作,但我在测试中犯了一个错误。正如人们所预料的那样,它没有。但是,您可以尝试使用新项目:

new-item -force -path $path -value "bar" -type file

不完全相同,但您可以创建一个简单的功能来执行您想要的操作:

function Out-FileForce {
PARAM($path)
PROCESS
{
    if(Test-Path $path)
    {
        Out-File -inputObject $_ -append -filepath $path
    }
    else
    {
        new-item -force -path $path -value $_ -type file
    }
}
}