我們以前一直在使用此腳本,但最近我們在使用我們的配置轉換步驟時遇到了一些問題(請參閱下面的錯誤)來自我們的TFS Build。Powershell:指定的路徑或文件名或兩者都過長 - 目錄排除
$serviceFiles = Get-ChildItem $localWorkspace -Recurse | where {$_.Extension -eq ".exe"}
最近,我們切換到使用咕嘟咕嘟編譯我們的CSS和JS這給了我們一個「node_modules」文件夾中。它看起來像試圖抓取這些文件夾,實際上達到目錄長度限制。我嘗試了各種建議,我發現從谷歌搜索和其他相關的問題上,但沒有人似乎爲我工作,它仍然發生相同的錯誤(並且我認爲實際上並不排除這些文件夾)
這是我嘗試使用排除
$excludedDirectories = @("*node_modules*", "*packages*", "*Common*");
Write-Verbose $localWorkspace
# get services for config types (service configs named same as assmebly .exe)
$serviceFiles = Get-ChildItem $localWorkspace -Recurse -Exclude $excludedDirectories | ?{$_.Extension -eq ".exe" -and $_.FullName -notmatch '*node_modules*' }
我已經試過這方面的一些變化基於其他SO問題和答案的文件夾的修改版本的例子,但解決的辦法逃避我。我從幾個來源讀到,-Exclude
在大多數情況下不適用於很多人,所以我嘗試了where子句的解決方案來排除文件夾(我想排除多個文件夾,但我只是嘗試了node_modules看看我是否可以通過它,其他文件夾不是太深)
我想排除node_modules目錄,以及其他一些不需要檢查的轉換。任何幫助將不勝感激,謝謝。
**不*使用圖片代碼。使用標準的格式化工具發佈實際的代碼**(-1直到你解決這個問題。)解決你的問題:我沒有明確的提議,但是當我看到標題時我的第一個想法是「node_modules」看不見,那裏是你的排除。node_modules傾向於創建如此深的嵌套層次結構,並開始運行到Windows文件長度限制之內。 – jpmc26
其實,給你一些東西。我很難找到它的文檔,但是正如我記得的那樣,在底層系統獲得所有文件後,會處理'--Exclude'。所以' - 排除'不起作用。 – jpmc26
謝謝,我用代碼片段而不是圖片修改了我原來的帖子。 – ICTech