Batch file Windows批处理-从字符串中删除第一个单词
我正在尝试批量删除字符串中的第一个单词 示例:“这个孩子喜欢批次”到“孩子喜欢批次” 我试过:Batch file Windows批处理-从字符串中删除第一个单词,batch-file,Batch File,我正在尝试批量删除字符串中的第一个单词 示例:“这个孩子喜欢批次”到“孩子喜欢批次” 我试过: @echo off set /p text=text: for /f "tokens=1,*" %%a in ("%text%") do set updated=%%a echo %updated% pause 它只输出第一个单词,不删除第一个单词 如何使其删除第一个单词并保留字符串的其余部分?您也可以在不使用for循环的情况下执行此操作: @Echo关闭 设置/P“文本=文本:” 设置“已更新=
@echo off
set /p text=text:
for /f "tokens=1,*" %%a in ("%text%") do set updated=%%a
echo %updated%
pause
它只输出第一个单词,不删除第一个单词
如何使其删除第一个单词并保留字符串的其余部分?您也可以在不使用for循环的情况下执行此操作:
@Echo关闭
设置/P“文本=文本:”
设置“已更新=%text:*=%”
回显(%已更新%)
超时-1
当使用“tokens=1,*”
和循环的中的默认分隔符(变量为%%a
)时,第一个空白字符左侧的所有内容都存储在%%a
中,而其他所有内容都存储在%%b
中
要获取第一个单词后的所有内容,只需将set updated=%%a
更改为set updated=%%b
@echo off
set /p text=text:
for /f "tokens=1,*" %%a in ("%text%") do set updated=%%b
echo %updated%
pause
使用%%b
而不是%%a
@somethingsdark当我将%%a更改为%%bNo时,它会给出相同的输出。只要更改:set updated=%%b
如果您碰巧阅读了for
命令的帮助文件。特别是关于令牌
选项的部分:如果令牌=字符串中的最后一个字符是星号sk,然后分配一个附加变量,并在最后一个标记解析后接收行上剩余的文本。附加变量是字母表中的下一个字母,简单地说就是。实际上,它是下一个ascii字符,但解释这一点是为了另一个问题。