2009-04-02 6 views
7

Mi código es:Out-File force, directorios intermedios no se crean

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

El error:

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

ayuda a cabo en archivos Full

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.

Por lo tanto, parece que debería crear 'no-such-dir', pero no es así. ¿Lo que pasa?

Respuesta

6

Según lo mencionado por Micheal, esto parece un error (¡o publicidad falsa!).

EDIT: Inicialmente pensé que el operador ">" funcionaba, pero cometí un error en mi prueba. No lo hace, como uno esperaría. Sin embargo, puede probar a usar nuevo elemento en su lugar:

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

No es exactamente la misma, pero se puede crear una función simple de hacer lo que quiere:

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

¿Estás seguro de que funciona para usted? Estoy usando PowerShell v2, y no funciona. – alex2k8

+0

Lo probé. pero cometí el error de olvidar eliminar el directorio intermedio, lo siento. – zdan

+0

Nuevo artículo funciona perfecto, ¡gracias! – alex2k8

Cuestiones relacionadas