
[分享]批處理判斷指定位置的字符不是數字字母然后截取問題:請問各位大佬, call set s= %%%%s:~0,%%str%%%%%% 得出%s:~0,9%,不能擴展出s的值來,str是數字正確擴展出來了,s是一個字符串?我想字符串s截取前10位。我用 setlocal EnableDelayedExpansion,搞成call echo %%s:~!str!,1%% ,輸出正確,但用 set s=%%s:~!str!,1%% ,s的值還是舊值,不會變。代碼:
- @echo off
- setlocal enabledelayedexpansion
- set s=123456789a中國bcd
- for /l %%x in (8,1,11) do (
- set str=%%x
- REM call echo a%%str%%
- set /a str+=1
- REM echo d !s!
- call set t=%%s:~!str!,1%%
- if !t! gtr z (
- REM call set result=!s:~0,%%x!
- call set result=%%s:~0,!str!%%
- goto :next
- )
- )
- goto :end
- :next
- echo !result!
- goto :end
- :end
- pause
nclick="copycode($('code0'));">復制代碼