Out-File -force, промежуточные каталоги не создаются - PullRequest
7 голосов
/ 03 апреля 2009

Мой код:

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

Ошибка:

Out-File: не удалось найти часть путь 'C: \ no-such-dir \ 00.txt'

справка вне файла -полная

Например, Force переопределит атрибут только для чтения или создать каталоги для завершения пути к файлу, но он не будет пытаться изменить файл разрешения.

Так что, похоже, он должен создать 'no-such-dir', но это не так. Что происходит?

Ответы [ 2 ]

9 голосов
/ 03 апреля 2009

Это похоже на ошибку. По http://www.vistax64.com/powershell/62805-out-file-force-doesnt-seem-work-advertised.html, эта проблема уже была подана в MS Connect.

6 голосов
/ 03 апреля 2009

Как уже упоминал Майкл, это похоже на ошибку (или ложную рекламу!).

РЕДАКТИРОВАТЬ: Сначала я думал, что оператор ">" работает, но я допустил ошибку в своем тесте. Это не так, как можно было бы ожидать. Однако вместо этого вы можете попробовать использовать new-item:

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
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...