許多命令能支持UNC路徑,但是UNC路徑在腳本中看起來很奇怪。看看下面代碼:
PS> Test-Path -Path \\127.0.0.1\c$
True
它返回了真,證明UNC路徑存在。接著改變當前的路徑指向一個非文件系統(tǒng)路徑接著測試:
PS> cd hkcu:\
PS> Test-Path -Path \\127.0.0.1\c$
False
一樣的路徑但現在卻獲得了失敗。這是因為UNC路徑沒有包含盤符,而PS需要根據盤符去分配當前合適位置。如果當前路徑沒有包含在磁盤路徑下,Powershell將假定當前選擇的位置。所以當你改變當前目錄到注冊表,PS將試圖從當前注冊表獲取UNC路徑,這就是錯誤原因。
更糟的是有些莫名其妙的原因,當你在使用“Net use”做網絡映射,查看驅動命令時PS可能會讓你迷糊。
這里有一個簡單的解決辦法,當你在命令中使用UNC路徑,首先要考慮當前所在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
如果你擔心”Net Use”產生盤符麻煩,請預先使用 “FileSystem::”做好相應的措施。將能徹底解決問題。
支持所有PS版本
您可能感興趣的文章:- PowerShell小技巧之使用Verb打開程序
- PowerShell小技巧之True和False的類型轉換
- PowerShell小技巧之查找獲取注冊表路徑
- Powershell小技巧之獲取字符串的行數
- Powershell小技巧之查詢AD用戶
- Powershell小技巧之查看安裝的.Net framework版本信息
- PowerShell小技巧實現IE Web自動化