2011-08-11 15 views
7

यूएनसी पथ का उपयोग कर विदेशी मशीन पर निर्देशिका बनाने के लिए नई वस्तु को कॉल करते समय मुझे दौड़ की स्थिति दिखाई दे रही है। कोड नीचे है:रेस हालत नई वस्तु के साथ निर्देशिका बनाने?

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

टेस्ट-पथ का उपयोग तुरंत बाद में झूठी वापसी करता है। मैंने एक टेस्ट-पथ रखा -> 1 सेकंड रीट्री लूप के लिए सो जाओ और 1 सेकंड के लिए सोने के बाद, टेस्ट-पथ सच हो रहा है।

क्या नया आइटम एक अवरुद्ध कॉल है? क्या मुझे नई वस्तु को कॉल करने के बाद इंतजार करना होगा?

+1

मुझे कोई समस्या नहीं है और सत्य का परिणाम प्राप्त करें: md \\ server \ share \ newFolder; टेस्ट-पथ \\ सर्वर \ शेयर \ newFolder –

+1

डिट्टो, निर्देशिका बनाने और तेजी से उत्तराधिकार में 50 बार परीक्षण करने में कोई समस्या नहीं है। शायद आपके नेटवर्क शेयर (कैशिंग परत की तरह) के बारे में कुछ असामान्य है? –

+2

@Niall क्या आप इसे डीएफएस शेयर के खिलाफ कर रहे हैं? यद्यपि आप एक निर्देश से दूसरे शेयरों में दूसरे शेयरों पर क्यों जा रहे हैं, मुझे नहीं पता ... – Matt

उत्तर

0

मैं आपकी समस्या का पुन: उत्पन्न नहीं कर सकता।

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 मूल निर्देशिका के लिए एक DirectoryInfo -object हो रही है, और बुला यह CreateSubDirectory है, की तरह से एक नया निर्देशिका बनाता है:

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

मैं एक डेवलपर नहीं कर रहा हूँ, लेकिन AFAIK इसका मतलब है कि यह एक है अवरुद्ध कॉल, क्योंकि यह बदले में DirectoryInfo -object के लिए इंतजार कर रहा है। तो समस्या यह है कि समस्या आपके भंडारण उपप्रणाली के साथ है।

0

किसी अन्य प्रक्रिया में New-Item आदेश चलाने की कोशिश करें और इसके लिए इंतजार:

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

मैं एक स्क्रिप्ट है कि एक फ़ोल्डर बनाने और फिर फ़ोल्डर में एक 7zip संग्रह लिखना लेकिन 7zip शिकायत करेगा कि लिख रहा था निर्देशिका मौजूद नहीं थी। यह इस मुद्दे के आसपास काम करने लग रहा था।

संबंधित मुद्दे