許多命令能支持UNC路徑,但是UNC路徑在腳本中看起來很奇怪。看看下面代碼:
PS> Test-Path -Path //127.0.0.1/c$True
它返回了真,證明UNC路徑存在。接著改變當(dāng)前的路徑指向一個非文件系統(tǒng)路徑接著測試:
PS> cd hkcu:/ PS> Test-Path -Path //127.0.0.1/c$False
一樣的路徑但現(xiàn)在卻獲得了失敗。這是因為UNC路徑?jīng)]有包含盤符,而PS需要根據(jù)盤符去分配當(dāng)前合適位置。如果當(dāng)前路徑?jīng)]有包含在磁盤路徑下,Powershell將假定當(dāng)前選擇的位置。所以當(dāng)你改變當(dāng)前目錄到注冊表,PS將試圖從當(dāng)前注冊表獲取UNC路徑,這就是錯誤原因。
更糟的是有些莫名其妙的原因,當(dāng)你在使用“Net use”做網(wǎng)絡(luò)映射,查看驅(qū)動命令時PS可能會讓你迷糊。
這里有一個簡單的解決辦法,當(dāng)你在命令中使用UNC路徑,首先要考慮當(dāng)前所在UNC路徑位置,這將避免此問題:
PS> Test-Path -Path FileSystem:://127.0.0.1/c$True PS> cd hkcu:/ PS> Test-Path -Path //127.0.0.1/c$False PS> Test-Path -Path FileSystem:://127.0.0.1/c$True
如果你擔(dān)心”Net Use”產(chǎn)生盤符麻煩,請預(yù)先使用 “FileSystem::”做好相應(yīng)的措施。將能徹底解決問題。
支持所有PS版本
新聞熱點
疑難解答
圖片精選