使用 Windows 批處理檔案,我試圖在檔案夾中回顯檔案擴展名串列。然后將其設定為 %var% 并輸出到 .txt 檔案
@setlocal & @(for %%I in (*.*) do @set /a ext[%%~xI] = 1) & set ext[
從這篇文章Windows 命令獲取檔案擴展名串列
我的最終游戲是我希望它像這樣輸出
檔案夾內容:
sample1.jpg
sample2.jpg
sample3.jpg
sample4.mp4
sample5.mp4
sample6.png
sample7.zip
sample8.zip
結果:
.jpg, .mp4, .png, .zip
非常感謝任何幫助,我希望我解釋得足夠清楚
uj5u.com熱心網友回復:
您已經為每個擴展定義了一個變數。只需使用另一個for /f回圈來連接它們的相關部分(實際擴展):
@echo off
setlocal enabledelayedexpansion
for %%I in (*) do @set /a ext[%%~xI] = 1
for /f "tokens=2 delims=[]" %%a in ('set ext[') do set "var=%%a, !var!"
echo %var:~0,-2%
uj5u.com熱心網友回復:
@setlocal ENABLEDELAYEDEXPANSION&@(for %%I in (*.*) do @set /a ext[%%~xI] = 1&IF DEFINED ext[all] (IF "!ext[all]!" equ "!ext[all]: %%~xI=!" SET "ext[all]=!ext[all]!, %%~xI") ELSE (SET "ext[all]= %%~xI"))&SET "ext[all]=!ext[all]:~1!"&set ext[
為什么你要把這一切都放在一條線上,我不知道。
由于您需要在回圈中訪問變數的更改值,因此您需要delayedexpansion. 請注意,Space每次找到新擴展名時都會附加 .ext,因此串列變數的開頭會有一個額外的空格 - 因此需要在顯示結果之前洗掉第一個字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462611.html
標籤:批处理文件
