我想你和我一樣,經常看到表格的路徑 !!! 重要____新____! 不要刪除!!!98819 年 649 月 30 日的訂單號 1985-XNUMX-B 關於任命 Ivan Aleksandrovich Kozlov 為支持企業 VIP 客戶和在場外組織商務會議的部門代理負責人。.
通常您無法立即在 Windows 中打開此類文檔。 有人以磁盤映射的形式實踐解決方法,有人使用可以處理長路徑的文件管理器:Far Manager、Total Commander 等。 還有更多的人悲傷地看著他們創建的 PS 腳本,其中投入了大量的工作,並且在測試環境中大放異彩,在戰鬥環境中,無奈地抱怨一項不可能完成的任務: 指定的路徑、文件名或兩者都太長。 完全限定文件名必須少於 260 個字符,目錄名必須少於 248 個字符。
事實證明,260 個字符“不僅適用於所有人”就足夠了。 如果您有興趣超越允許的範圍,我會在 cat 下詢問。
以下是限製文件路徑長度的一些不幸後果:
- 服務器上有一個文件夾,例如D:DataSharedAccounting,通過SMB共享,作為網絡盤S掛載給用戶; 用戶創建從服務器本地訪問時管理員/腳本無法讀取的文件,因為絕對路徑比網絡路徑長;
漫遊配置文件同步錯誤 ;從卷影副本恢復的問題 ;- 當從其他對路徑長度沒有嚴格限制的系統遷移數據時,在新環境中,如果不手鼓跳舞,其中一些將變得無法訪問;
計算文件夾中文件的大小和數量時數據不正確 ;- 等等...
稍微偏離主題,我注意到對於 DFS 複製,文章中考慮的問題並不可怕,長名稱的文件成功地從一個服務器傳輸到另一個服務器(當然,除非你
我還想提請注意一個非常有用的實用程序,它不止一次幫助過我
我也有興趣學習如何使用長 PowerShell 路徑。 和他在一起,幾乎就像是關於伊万沙皇和美麗的瓦西里薩的大鬍子笑話。
快捷方式
切換到 Linux,不用擔心 Windows 10/2016/2019 並啟用適當的組策略設置/註冊表調整。 我不會詳細介紹這個方法,因為。 網上已經有很多關於這個主題的文章,例如,
考慮到在大多數公司中有很多,委婉地說,不是新版本的操作系統,這種方法僅用於在紙上書寫是快速的,當然,除非你是那些幾乎沒有遺留系統和 Windows 的幸運者之一10/2016/2019 統治。
很長的路要走
在這裡我們立即做出保留,這些更改不會影響 Windows 資源管理器的行為,但可以在 PowerShell cmdlet 中使用長路徑,例如 Get-Item、Get-ChildItem、Remove-Item 等。
首先,讓我們更新 PowerShell。 已經完成一、二、三。
- 我們將 .NET Framework 更新到至少 4.5 的版本。 操作系統必須至少為 Windows 7 SP1/2008 R2。 當前版本可以下載
這裡 閱讀更多信息這裡 . 正在下載 並安裝 Windows Management Framework 5.1- 我們重新啟動機器。
勤奮的人可以手動完成上述步驟,懶惰的人可以藉助 SCCM、策略、腳本和其他自動化工具來完成。
PowerShell 的當前版本可以從變量中找到 $PS版本表. 更新後應該是這樣的:
現在使用 cmdlet 時 GET-ChildItem 和其他人喜歡他而不是平常 途徑 будемиспользовать 文字路徑.
路徑的格式會略有不同:
Get-ChildItem -LiteralPath "?C:Folder"
Get-ChildItem -LiteralPath "?UNCServerNameShare"
Get-ChildItem -LiteralPath "?UNC192.168.0.10Share"
為了方便將路徑從通常的格式轉換為格式 文字路徑 你可以使用這個功能:
Function ConvertTo-LiteralPath
Param([parameter(Mandatory=$true, Position=0)][String]$Path)
If ($Path.Substring(0,2) -eq "") {Return ("?UNC" + $Path.Remove(0,1))}
Else {Return "?$Path"}
}
請注意,在設置參數時 文字路徑 不能使用通配符 (*, ? 等等)。
除了參數 文字路徑, 在更新的 PowerShell cmdlet 中 GET-ChildItem 接收到的參數 深度,你可以用它來設置遞歸搜索的嵌套深度,我用了幾次並且很滿意。
現在您不必擔心您的 PS 腳本會從一條棘手的長途中誤入歧途,並且不會看到遠處的文件。 例如,在編寫腳本以重置 DFSR 文件夾中文件的“臨時”屬性時,這種方法對我有很大幫助。 但這是另一個故事,我將在另一篇文章中嘗試講述。 我正在等待您的有趣評論,我建議您進行一項調查。
相關鏈接:
只有註冊用戶才能參與調查。
長路徑問題與您有關嗎?
-
Да
-
相關,但已經決定
-
有影響,但不大
-
沒想到,似乎一切正常
-
沒有
-
其他(備註說明)
155 位用戶投票。 25 名用戶棄權。
來源: www.habr.com