如何在批處理文件中獲得字符串長度?在批處理文件中獲取字符串的長度似乎沒有一種簡單的方法。例如,SET MY_STRING=abcdefg
SET /A MY_STRING_LEN=???的字符串長度如何查找?MY_STRING?如果字符串長度函數處理字符串中的所有可能字符(包括轉義字符),則加分如下:!%^^()^!.
3 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
@echo off setlocal set "myString=abcdef!%%^^()^!" call :strlen result myString echo %result% goto :eof :strlen <resultVar> <stringVar> ( setlocal EnableDelayedExpansion set "s=!%~2!#" set "len=0" for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do ( if "!s:~%%P,1!" NEQ "" ( set /a "len+=%%P" set "s=!s:~%%P!" ) ) ) ( endlocal set "%~1=%len%" exit /b )

婷婷同學_
TA貢獻1844條經驗 獲得超8個贊
strvar
:
ECHO %strvar%> tempfile.txt FOR %%? IN (tempfile.txt) DO ( SET /A strlength=%%~z? - 2 )
strlength
.
FOR %%? IN (filename) DO ( ...
獲取有關文件的信息 SET /A [variable]=[expression]
*對表達式進行數值計算 %%~z?
*獲取文件長度的特殊表達式
ECHO %strvar%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
- 3 回答
- 0 關注
- 871 瀏覽
添加回答
舉報
0/150
提交
取消