回答
@echo off
setlocal enabledelayedexpansion
set filename=__example_file.bin_
set cnt=0
set pos=0
:loop
if "!filename:~%pos%,1!"=="_" set /a cnt=%cnt%+1
set /a pos=%pos%+1
if not "!filename:~%pos%,1!"=="" goto loop
echo Count: %cnt%
這段代碼相當醜陋,但到目前爲止我找不到更好的方法。
有點工作,但當我嘗試在令牌中插入%cnt%變量時,它說tdelims是意外的 –
@RogerAway'for/f'循環將忽略前導分隔符並將連續分隔符作爲唯一分隔符。適合/ f的形式如下:'for/f「tokens =%cnt%delims = _」%% A in(「%filename%」)do Echo %% A' – LotPings
這是我的代碼,它看起來很相似: @LotPings對於/ f「令牌=%cnt%delims = _」%% b in(「%%〜na」): –
一種不同的方法來計算下劃線(或更精確的元件以下劃線分隔)
是使用self expanding code:
:: Q:\Test\2017\08\28\SO_45917406.cmd
@echo off & setlocal enabledelayedexpansion
set "FileName=example_file_name_20170828_181000.txt"
Set i=1&Set "FileName[!i!]=%FileName:_="&Set /a i+=1&Set "FileName[!i!]=%"
Echo Counted %i% underscore separated elements
Set FileName
示例輸出:
> Q:\Test\2017\08\28\SO_45917406.cmd
Counted 5 underscore separated elements
FileName=example_file_name_20170828_181000.txt
FileName[1]=example
FileName[2]=file
FileName[3]=name
FileName[4]=20170828
FileName[5]=181000.txt
將該溶液從@啓發xmcp:
@echo off
Rem The srting to count in the filename is the underscrore "_"
Rem we can of course set another one ;)
set "MyString=_"
setlocal enabledelayedexpansion
@for /f "delims=" %%a in ('Dir /b "%userprofile%\Desktop"') do (
set "filename=%%a"
set /a "cnt=0"
set /a "pos=0"
Call:Counting_String "!filename!" "%Mystring%"
)
pause & exit
::*********************************************************
:Counting_String <filename> <MyString>
set "filename=%~1"
set "string=%~2"
if /I "!filename:~%pos%,1!"=="%Mystring%" set /a cnt+=1
set /a pos+=1
if not "!filename:~%pos%,1!"=="" goto Counting_String
echo !filename!: [!cnt!] "%Mystring%"
exit /b
::*********************************************************
- 1. 使用蝙蝠文件計劃將Google工作表導出爲xlsx
- 2. 使用文件夾中的蝙蝠移動文件
- 3. 蝙蝠文件禁止用戶輸入
- 4. 根據名稱刪除文件的蝙蝠文件
- 5. java版蝙蝠算法在matlab中
- 6. 呼叫蝙蝠
- 7. 在蝙蝠
- 8. Windows蝙蝠文件拖放ñ下降Imagemagick圖像文件
- 9. 蝙蝠命令調用名爲.txt
- 10. 蝙蝠文件參數衝突?
- 11. 蝙蝠文件隱藏/取消隱藏
- 12. 蝙蝠按行讀取文件
- 13. 蝙蝠文件 - 找不到.exe
- 14. WMIC - 蝙蝠文件菜單程序
- 15. 蝙蝠:如何提取命令的文件名
- 16. 如何提取以下蝙蝠文件的IPv4
- 17. 在文件名中帶有下劃線
- 18. 蝙蝠文件刪除文件中的最後一個字符?
- 19. 如何改變文件擴展名與蝙蝠
- 20. 循環通過目錄中的蝙蝠,往上用bat文件
- 21. 將參數從蝙蝠傳遞到蝙蝠(環境變量)
- 22. 如何打開.conf文件和保存使用蝙蝠
- 23. 使用蝙蝠開始PowerShell腳本
- 24. 基於文本文件中使用蝙蝠腳本的單詞複製行
- 25. 在文件名中使用變量,下劃線
- 26. 蝙蝠前綴帶有文件夾字符和後綴日期的文件名
- 27. Windows蝙蝠:如何循環子目錄中的文件
- 28. 蝙蝠腳本讀空間文件中的行
- 29. Windows蝙蝠:目錄中的循環文件
- 30. 變量轉義在蝙蝠
你有什麼嘗試過 至今? – CristiFati