回答
@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. 使用蝙蝠文件
- 2. 下拉菜單打開蝙蝠文件
- 3. 使用蝙蝠文件計劃將Google工作表導出爲xlsx
- 4. 蝙蝠文件FTP命令
- 5. 蝙蝠文件包括
- 6. 使用文件夾中的蝙蝠移動文件
- 7. 蝙蝠刪除在文本文件中
- 8. 將蝙蝠EXE運行到蝙蝠Java
- 9. 蝙蝠文件禁止用戶輸入
- 10. 根據名稱刪除文件的蝙蝠文件
- 11. java版蝙蝠算法在matlab中
- 12. Windows蝙蝠:沒有擴展名的文件(點名稱問題)
- 13. 蝙蝠文件手動運行,但未按計劃任務運行
- 14. 如何從蝙蝠的完整路徑中提取文件名?
- 15. 寫入蝙蝠文件的問題
- 16. 呼叫蝙蝠
- 17. 在蝙蝠
- 18. 蝙蝠文件更改文件夾名稱
- 19. 計劃任務蝙蝠 - 檢查網絡驅動器準備
- 20. Windows蝙蝠文件拖放ñ下降Imagemagick圖像文件
- 21. 蝙蝠命令調用名爲.txt
- 22. 如何使蝙蝠文件用引號打開Excel文件?
- 23. 在蝙蝠中搜索部分路徑\文件名
- 24. 使用兩個文件用蝙蝠替換另一個文件中的文本?
- 25. 蝙蝠文件參數衝突?
- 26. 蝙蝠作業不讀取txt文件
- 27. 蝙蝠按行讀取文件
- 28. WMIC - 蝙蝠文件菜單程序
- 29. 蝙蝠文件集類路徑
- 30. 蝙蝠文件 - 找不到.exe
你有什麼嘗試過 至今? – CristiFati