2009-04-02 4 views
7

Mã của tôi là:Out-File -force, danh bạ trung gian không được tạo ra

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

Lỗi:

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

giúp đỡ ra-file -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.

Vì vậy, nó có vẻ như nó sẽ tạo ra 'không-như-dir', nhưng nó không. Chuyện gì xảy ra?

Trả lời

6

Như đã đề cập bởi Micheal, điều này trông giống như một lỗi (hoặc quảng cáo sai!).

EDIT: Ban đầu tôi nghĩ toán tử ">" đã hoạt động, nhưng tôi đã làm sai trong bài kiểm tra của mình. Nó không, như người ta mong đợi. Tuy nhiên, bạn có thể thử sử dụng mới mục thay vì:

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

Không giống hệt nhau, nhưng bạn có thể tạo một hàm đơn giản để làm những gì bạn muốn:

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

Bạn có chắc chắn nó làm việc cho bạn? Tôi đang sử dụng PowerShell v2 và nó không hoạt động. – alex2k8

+0

Tôi đã thử nó. nhưng tôi đã mắc sai lầm khi quên xóa thư mục trung gian, xin lỗi. – zdan

+0

Mục mới hoạt động hoàn hảo, cảm ơn bạn! – alex2k8