簡體   English   中英

Windows 命令獲取文件擴展名列表

[英]Windows command to get list of file extensions

我需要一個命令來獲取文件夾中不同的擴展文件,其中包含每個擴展的出現次數。

那么我該怎么做呢?

你可以用這樣的 PowerShell one-liner 來做到這一點:

powershell "$ext = @{}; gci *.* | %{ $ext[$_.Extension]++ }; $ext"

如果在 .bat 腳本中使用它,請將%符號加倍。


在純批處理中,這是我能想到的最簡單的方法:

@echo off & setlocal

for %%I in (*.*) do (
    set /a ext[%%~xI] += 1
)

set ext[

或濃縮為單行(仍在 .bat 腳本中):

@setlocal & @(for %%I in (*.*) do @set /a ext[%%~xI] += 1) & set ext[

或者直接從 cmd 控制台:

cmd /c ">NUL (@for %I in (*) do @set /a ext[%~xI] += 1) & set ext["

(那里的cmd /c行為類似於 bat 腳本中的setlocal ,幫助您避免使用無用的變量破壞您的環境。)

這是來自superuser.com 的解決方案。 將此代碼保存在.bat文件中。

@echo off

set target=%~1
if "%target%"=="" set target=%cd%

setlocal EnableDelayedExpansion

set LF=^


rem Previous two lines deliberately left blank for LF to work.

for /f "tokens=*" %%i in ('dir /b /s /a:-d "%target%"') do (
    set ext=%%~xi
    if "!ext!"=="" set ext=FileWithNoExtension
    echo !extlist! | find "!ext!:" > nul
    if not !ERRORLEVEL! == 0 set extlist=!extlist!!ext!:
)

echo %extlist::=!LF!%

endlocal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM