如何使用 Windows 輕鬆尋找沒有副檔名的文件

如何使用 Windows 輕鬆尋找沒有副檔名的文件

我的硬碟上有一些沒有任何副檔名的檔案。手動找到它們非常困難,我真的不喜歡這樣的事實:我需要盡快更換滑鼠,因為不斷嘗試查找這些文件對硬體造成的損害雖然不大,但非常顯著。資料夾中數千個文件中的幾百個。

這裡有人知道cmdorPowerShell指令或某些 Windows 資源管理器搜尋進階查詢語法來幫助簡化此任務嗎?

答案1

使用 Windows 尋找沒有檔案副檔名的文件

Windows 資源管理器 - 進階查詢語法

按照寵物系列這裡有一些文件資源管理器進階查詢語法方法開始,但進一步閱讀等效方法命令列批次腳本此任務的方法。

遞迴搜尋

kind:= -folder type:= -[] extension:= []

非遞迴

只需選擇“目前資料夾“透過 GUI 進行選擇”搜尋“ 標籤

在此輸入影像描述

或者

kind:= -folder type:= -[] extension:= [] folder:"C:\folder\path"

您可以使用對於 /f循環迭代 a 的輸出目錄/B帶有和參數的命令/A-D,然後使用一些條件如果使用替換指定目錄中的迭代檔案僅輸出不含任何副檔名的檔案的邏輯。

命令列

筆記: 這假設您在命令列中所在的目錄是您需要搜尋以顯示不含副檔名的檔案的目錄。

FOR /F "TOKENS=*" %A IN ('dir /B * /A-D') DO IF /I [%~nxA]==[%~nA] ECHO %~A

批次腳本

筆記: 這是一個批次腳本,您將值設定SET Src=為需要搜尋以顯示不含副檔名的檔案的目錄。

@ECHO ON
SET Src=C:\folder\path
FOR /F "TOKENS=*" %%A IN ('DIR /B "%Src%\*" /A-D') DO IF /I [%%~nxA]==[%%~nA] ECHO %%~A
PAUSE
EXIT

更多資源

  • 對於/F
  • FOR /?

    此外,FOR 變數引用的替換也得到了增強。現在您可以使用以下可選語法:

    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • 目錄

  • 如果

答案2

對於 PowerShell 解決方案:

Get-ChildItem -Path $Path -Recurse -File -Filter '*.'

或者:

Get-ChildItem -Path $Path -Recurse -File | Where-Object Extension -eq ''

請注意,該-File參數需要 PowerShell v3+。

答案3

在命令提示字元中,只需使用*.

C:\目錄\名稱> 目錄

2018 年 8 月 24 日 03:33 。
08/24/2018 上午 03:33 ..
2018 年 8 月 24 日 03:33 上午 16 點
2018 年 8 月 24 日上午 03:33 西元前 18 年
2018 年 8 月 24 日 03:33 上午 20 分
               3 個檔案 54 位元組

C:\目錄\名稱> 目錄 *.

2018 年 8 月 24 日 03:33 。
08/24/2018 上午 03:33 ..
2018 年 8 月 24 日 03:33 上午 16 點
               1 個檔案 16 位元組

C:\目錄\名稱>

請記住,Windows 命令提示字元不是 Unix。在 Unix 檔案名稱中,點 (.) 只是一個普通字元(除了以點開頭的檔案名稱被隱藏之外)。在 Unix 中,*e*表示所有包含 的檔名e,並且*.*表示所有包含(明確地)包含一個.

命令提示字元的規則比較棘手。  *表示所有檔案名稱(甚至帶有副檔名的檔案名稱)。並且*.*還意味著所有文件名(甚至不包含.)。但*.表示所有沒有副檔名的檔名。

答案4

ls | ? {$_.Extension -eq ''}

這使用了最大速記。但它實際上與@BaconBits 相同的程式碼。我比較喜歡速記。對於初學者來說更難閱讀,但更具表現力和簡潔

相關內容