windows 从字符串中提取第一个字符

zed5wv10  于 2022-12-14  发布在  Windows
关注(0)|答案(3)|浏览(179)

我对Windows批处理编程语法一无所知。我有一个包含用户ID的文本文件,我需要使用curl命令删除它,为此我需要提取每个用户ID的第一个字符,然后传递给curl命令。我知道curl命令需要两个变量:
1.“用户ID”-从文本文件中读取。
1.'firstCharacter' -正在提取用户ID的第一个字符。
下面是从users.txt文件中获取用户ID的代码:

@echo off
for /f "tokens=*" %%a in (users.txt) do call :processline %%a
pause
goto :eof
:processline
echo %*
goto :eof
:eof

请帮我从读取的会员帐号中提取第一个字符。谢谢。

tyg4sfes

tyg4sfes1#

cmd.exe只能做有限数量的字符串解析。JosefZ给了你一个很好的起点。

C:>echo %PROCESSOR_ARCHITECTURE%
AMD64

C:>echo %PROCESSOR_ARCHITECTURE:~0,1%
A
vngu2lb8

vngu2lb82#

在一个批处理/命令文件中,我总是需要前x个字符或字符串,最后得到了许多函数,它们都在做同样的事情,但名称不同,例如getFirstChar、getFirstTwoChars等。因此,我决定创建一个泛型函数,在其中可以传入我所需的字符数:

::-- getFirstXChars
:getFirstXChars
    set sValIn=%1
    set /a iNo=%2
    set vWorkVal=%%sValIn:~0,%iNo%%%
    call:getFirstX %vWorkVal% vWorkVal2
    set %3=%vWorkVal2%

:getFirstX
    set %2=%~1
goto:eof

使用该语法的方法是

set varToTrim=ABCDEFG

call:getFirstXChars %varToTrim% 2 varToTrimAfter

@echo 1 %varToTrim%
@echo 2 %varToTrimAfter%
pause

来自命令文件结果:

tpxzln5u

tpxzln5u3#

我只是添加了变量“id”,将其设置为%%a,然后使用子字符串表示法来获取第一个字符。在变量名之后和变量中最后一个%之前使用:~start,length来处理子字符串。

@echo off
for /f "tokens=*" %%a in (output.txt) do set id=%%a & call :processline %%a
pause
goto :eof
:processline
echo %id:~0,1%
goto :eof
:eof

相关问题