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 批处理-如何使用set/p和if创建命令_Batch File - Fatal编程技术网

Batch file 批处理-如何使用set/p和if创建命令

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% 如果您

我需要从集合/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%
如果您的%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
我重新表述了这个问题:如何从句子中提取单词……句子来自哪里?命令窗口并不仅仅为您提供了可以使用的句子!