2011-08-11 29 views
7

Tôi nhìn thấy điều kiện chủng tộc khi gọi Mục mới để tạo thư mục trên máy tính nước ngoài bằng đường dẫn UNC. Mã này là dưới đây:Điều kiện tạo thư mục với Mục mới?

New-Item $target -itemType Directory -Force -Verbose | 
     %{ Write-Host "Creating dir" $_.FullName } 

Sử dụng thử nghiệm-Path ngay sau đó trả về false. Tôi đặt một Test-Path -> ngủ cho 1 giây thử lại vòng lặp và sau khi ngủ trong 1 giây, Test-Path là trở về sự thật.

Mục mới có phải là cuộc gọi chặn không? Tôi có nên chờ đợi sau khi gọi New-Item không?

+1

Tôi không có vấn đề gì và nhận được kết quả là đúng: md \\ server \ share \ newFolder; test-path \\ server \ share \ newFolder –

+1

Ditto, không có vấn đề gì ở đây tạo thư mục và thử nghiệm 50 lần liên tiếp nhanh chóng. Có thể có điều gì đó bất thường về chia sẻ mạng của bạn (như một lớp lưu trong bộ nhớ đệm)? –

+2

@Niall Bạn đang làm điều này chống lại một phần DFS? mặc dù tại sao bạn sẽ đi đến các cổ phần khác nhau từ một hướng dẫn khác mà tôi không biết ... – Matt

Trả lời

0

Tôi không thể tạo lại sự cố của bạn.

PS > New-Item "test" -itemType Directory -Force -Verbose | %{ Test-Path $_.FullName } 
VERBOSE: Performing the operation "Create Directory" on target "Destination: C:\Users\Frode\Desktop\test". 
True 

New-Item tạo một thư mục mới bằng cách nhận được một -object DirectoryInfo cho thư mục cha, và gọi đó là CreateSubDirectory, như:

DirectoryInfo subdirectory = new DirectoryInfo(parentPath).CreateSubdirectory(childName); 

Tôi không phải là một nhà phát triển, nhưng AFAIK đó có nghĩa là đó là một chặn cuộc gọi vì nó chờ trả lại DirectoryInfo -object. Vì vậy, mabe vấn đề là với hệ thống phụ lưu trữ của bạn.

0

Thử chạy lệnh New-Item trong quá trình khác và chờ cho nó:

Start-Process powershell -Argument "-Command `"New-Item `"$myNewDir`" -ItemType `"directory`"`"" -NoNewWindow -Wait

tôi đang viết một kịch bản mà sẽ tạo ra một thư mục và sau đó viết một kho lưu trữ 7zip vào thư mục nhưng 7zip sẽ phàn nàn rằng thư mục không tồn tại. Điều này dường như làm việc xung quanh vấn đề.

Các vấn đề liên quan