如何列出給定目錄中的所有檔案和目錄的完整路徑但不遞歸?

如何列出給定目錄中的所有檔案和目錄的完整路徑但不遞歸?

某種程度上像是dir /b命令,但我還需要那裡的隱藏檔案和系統檔案。內建 dir 命令不允許將此類「隱藏」檔案與其餘檔案一起列出,我必須使用/s其中的完整路徑,這當然是非遞歸的。

我也玩過Windows版本的ls指令,但也沒有運氣。若要顯示完整路徑,您必須mydir\*在列出的目錄末尾加上星號 ( ),但這會使其遞歸。

答案1

如果您不想安裝任何東西,也可以使用以下命令:

for /f "delims=" %a in ('cd') do @for /f %b in ('dir /b /a') do @echo %a\%b

您必須cd先進入該目錄,否則將無法運作。

答案2

嘗試以下命令:

dir /s /b /a

FIND它將提供所有文件,如果需要,您可以運行它或添加資料夾名稱。

答案3

如果您嘗試過 ls,為什麼不直接安裝 cygwin 呢?您可以在 cygwin 中使用 find:

find -name "*"

如果您確實安裝了 cygwin 並且想要在 cygwin 中使用 find,請確保透過使用完整路徑或在 system32 之前插入 cygwin bin 路徑來呼叫 cygwin 中的 find,因為 Windows 也有 find.exe。

答案4

這是一個老問題,但我想我還是要補充一些東西。

DIR 無法正確遍歷您想要的所有目錄樹,特別是 C: 上的目錄樹。由於保護措施不同,它只是在某些地方放棄了。

ATTRIB 的效果要好得多,因為它可以找到更多內容。 (為什麼會出現這種差異?為什麼微軟會讓一個實用程式以一種方式工作,而另一個實用程式在這方面以不同的方式工作?如果我知道的話就該死。)根據我的經驗,處理這個問題的最有效方法是獲得兩個列表,儘管這是一個拼湊:

attrib /s /d C:\ >%TEMP%\C-with-directories.txt

attrib /s C:\ >%TEMP%\C-without-directories.txt

並得到它們之間的差異。這個差別在於 C: 上的目錄(除了那些隱藏得太好的目錄)。對於 C:,我通常會以管理員身份運行來執行此操作。

相關內容