Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file Windows批处理-从字符串中删除第一个单词_Batch File - Fatal编程技术网

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字符,但解释这一点是为了另一个问题。