許多命令能支持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版本
您可能感興趣的文章:- PowerShell小技巧之使用Verb打開程序
- PowerShell小技巧之True和False的類型轉(zhuǎn)換
- PowerShell小技巧之查找獲取注冊表路徑
- Powershell小技巧之獲取字符串的行數(shù)
- Powershell小技巧之查詢AD用戶
- Powershell小技巧之查看安裝的.Net framework版本信息
- PowerShell小技巧實現(xiàn)IE Web自動化