簡體   English   中英

Windows批處理文件從文件名中提取的編號

[英]Windows batch file extract number from filename

我在Win7批處理文件中編寫了一個for循環,該文件遍歷指定文件夾中的每個文件:

for /f %%f in ('dir /b C:\some_folder') do ( 
    echo %%f
)

文件的格式為abc_123_1234567.txt 如何從文件名中提取最后一組數字(即1234567 )並將其放入變量中?

您可以使用JREN.BAT-一個混合的JScript / batch實用程序很好地解決此問題,該實用程序通過執行正則表達式搜索並替換名稱來重命名文件。 JREN.BAT是純腳本,可​​以從XP開始在任何Windows計算機上本地運行。

我使用/T測試選項,以便它僅列出原始文件和新名稱,而無需實際進行重命名。 然后,我使用FOR / F解析結果以獲取原始名稱和提取的數字。 它需要一些神秘的語法才能將分隔符設置為引號。

@echo off
for /f tokens^=1^,3^ delims^=^" %%A in (
  'jren ".*_\d+_(\d+)\.[^.]*$" "$1" /t /p "C:\some_folder"'
) do (
  echo File=%%A  Number=%%B
)
for /f "tokens=3delims=_." %%f in ('dir /b C:\some_folder\*') do ( 
    set /a filenum=%%f
    echo %%f
)
echo filenum is %filenum%

提供的文件只有一個與您提供的格式匹配

暫無
暫無

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

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