計算完整文件路徑中的字元數?

計算完整文件路徑中的字元數?

我需要能夠計算 Windows 中檔案的完整路徑中的字元數。我目前完成這項任務的方式如下:

  1. 開啟命令提示符
  2. cd 到相關目錄(例如 c:\CruiseControl\ProjectArtifacts\ProjectName)
  3. 輸入以下命令 dir /s /b > 輸出.csv
  4. 在 Excel 中開啟產生的 output.csv 檔案。
  5. 使用=LEN()Excel 中的函數可計算 output.csv 檔案中所列的每行字元數。

有誰知道資源管理器 shell 擴充功能或某些第三方工具可以執行此功能,而無需我操作 excel 中 dir 的輸出?有沒有一些更簡單的方法可以做到這一點?我遇到的問題的根源是 Windows 中 ~260 個字元的檔案路徑限制。我正在嘗試分析哪些路徑大約為 260 個字符,以便我可以縮短它們以避免此錯誤。

答案1

這種事情很容易做到漢密爾頓 C 殼。如果這是一次性的事情,你會很高興免費版本。下面的範例會產生c:\Windows目錄中多個檔案的完整路徑,然後計算字串長度。完全披露:我是作者。

128 C% cd
c:\Windows
129 C% ls mi*
Microsoft.NET      Minidump           mib.bin
130 C% foreach i ( mi* )
131 C? @ f = fullpath ( i )
132 C? echo $i $f $strlen(f)
133 C? end
mib.bin c:\Windows\mib.bin 18
Microsoft.NET c:\Windows\Microsoft.NET 24
Minidump c:\Windows\Minidump 19
134 C%

答案2

也許這些簡單的批次檔會派上用場。

1)統計目前目錄下的字元數:

@echo off
echo %cd%>"%TMP%\Temp.txt"
for %%l in ("%TMP%\Temp.txt") do set /a len=%%~zl
del "%TMP%\Temp.txt"
set /a len-=2
echo Path length = %len% chars.

cd到目錄。並調用批次檔。

2)統計指定目錄下的字元數:

@echo off
echo %1>"%TMP%\Temp.txt"
for %%l in ("%TMP%\Temp.txt") do set /a len=%%~zl
del "%TMP%\Temp.txt"
set /a len-=4
echo Path length = %len% chars.

呼叫批次檔並將完整路徑作為參數傳遞給它(如果路徑包含空格,請務必使用引號)。請注意,不會進行錯誤檢查,因此當路徑包含空格時省略引號將給出不正確(低)的計數,並且在末尾添加額外的反斜杠將增加計數。

答案3

這不是您問題的答案,但它解決了您的問題。類型

dir /s /b | findstr -r ...............................................................................................................................................................................................................................................................

在上面的插圖中,我輸入了 255 個句點;這將執行dir /s /b您已經知道的 操作,並僅顯示長度至少為 255 個字元的行(檔案路徑名)。依照您的喜好調整週期數。當然,您可以將上述輸出重定向到檔案以進行列印或其他分析。

相關內容