Batch file 批处理-如何使用set/p和if创建命令
我需要从集合/p中提取变量的帮助 我解释:Batch file 批处理-如何使用set/p和if创建命令,batch-file,Batch File,我需要从集合/p中提取变量的帮助 我解释: set/p command= :: THE %COMMAND% IS : setname mirtex if "%command%"=="setname %name%" goto test :test echo your name is %name% 所以我想提取我的名字“mirtex”,就像echo mirtex一样 谢谢您可以在第一个空格处拆分%command%: SET“name=%command:*=%” 回显您的姓名是%name% 如果您
set/p command=
:: THE %COMMAND% IS : setname mirtex
if "%command%"=="setname %name%" goto test
:test
echo your name is %name%
所以我想提取我的名字“mirtex”,就像echo mirtex一样
谢谢您可以在第一个空格处拆分%command%:
SET“name=%command:*=%”
回显您的姓名是%name%
如果您的%command%确实包含双引号,请添加额外的步骤以删除结束的步骤
SET“name=%command:*=%”
设置“name=%name:~,-1%”
回显您的姓名是%name%
下面是一个简短的例子,基于我对你答案的评论:
:gfn
设置/p“fname=输入您的名字”
如果“%fname%”==“转到:gfn
:gsn
设置/p“sname=输入您的姓氏”
如果“%sname%”==“转到:gsn)
设置“command=setname%fname%%sname%”
要拆分字符串,最灵活的方法是for
循环
我不知道,如果你总是输入两个元素。如果是:
for /f "tokens=1,2" %%a in (%command%) do (
set "command=%%a"
set "name=%%b"
)
echo command is "%command%", name is "%name%"
如果元素数未知,最好使用通用变量名:
@echo off
setlocal enabledelayedexpansion
set /p command=
set count=0
for %%a in (%command%) do (
set /a count+=1
set "element[!count!]=%%a"
)
echo number of elements: %count%
set element[
cmd应该如何问你一个问题,除非它运行一个脚本?对不起,我想我没有解释清楚。我想创建一个可以直接从cmd执行的命令,就像命令echo[syntax]一样,但我想提取第二个语法:echo[first][second]
call script.bat
或echo%1%2
我重新表述了这个问题:如何从句子中提取单词……句子来自哪里?命令窗口并不仅仅为您提供了可以使用的句子!