2009-04-02 3 views
7

Mein Code erstellt ist:Out-File -force werden Zwischen Verzeichnisse nicht

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

Der Fehler:

Out-File : Could not find a part of the path 'C:\no-such-dir\00.txt'

Hilfe out-Datei, um sie -volle

For example, Force will override the read-only attribute or create directories to complete a file path, but it will not attempt to change file permissions.

So scheint es sollte "No-so-dir" erstellen, aber es tut nicht. Was geschieht?

Antwort

6

Wie von Michael erwähnt, sieht das wie ein Fehler (oder falsche Werbung!).

EDIT: Ich dachte zunächst, dass der ">" Operator funktioniert, aber ich habe einen Fehler in meinem Test gemacht. Es ist nicht so, wie man es erwarten würde. Sie können jedoch versuchen, stattdessen neue Artikel mit:

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

nicht genau das gleiche, aber Sie können eine einfache Funktion erstellen zu tun, was Sie wollen:

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 
    } 
} 
} 
+0

Sind Sie sicher, dass es für Sie arbeitet? Ich verwende PowerShell v2 und es funktioniert nicht. – alex2k8

+0

Ich habe es versucht. aber ich habe den Fehler gemacht zu vergessen, das Zwischenverzeichnis zu löschen, sorry. – zdan

+0

New-Item funktioniert perfekt, danke! – alex2k8

Verwandte Themen