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 分析批处理文件中的变量_Batch File - Fatal编程技术网

Batch file 分析批处理文件中的变量

Batch file 分析批处理文件中的变量,batch-file,Batch File,我有一个脚本,在代码中间我需要分析一个变量,我在一个长代码中完成所有这些。例如,我的变量可以是variable=word1:word2或variable=word1,因此我有两种情况,一种是变量由一个单词组成,另一种是我有两个单词由分隔: 现在如果variable=word1那么我什么都不想做,但是 如果variable=word1:word2则SET variable=word1和SET variable2=word2 顺便说一句,我不知道单词1或单词2有多长,所以我不能根据它们的位置将它们分

我有一个脚本,在代码中间我需要分析一个变量,我在一个长代码中完成所有这些。例如,我的变量可以是
variable=word1:word2
variable=word1
,因此我有两种情况,一种是变量由一个单词组成,另一种是我有两个单词由
分隔:
现在如果
variable=word1
那么我什么都不想做,但是 如果
variable=word1:word2
SET variable=word1
SET variable2=word2


顺便说一句,我不知道单词1或单词2有多长,所以我不能根据它们的位置将它们分开,这应该可以满足您的需要

只要在需要的地方使用
var1
var2

@echo off
setlocal enabledelayedexpansion
set var=word1:word2
echo %var% | find ":" >nul
if %errorlevel%==0 (
rem It does have 2 vars
for /f "tokens=1* delims=:" %%a in ("%var%") do set var1=%%a && set var2=%%b
echo !var1!
echo !var2!
) else (
rem Only 1 var
)
pause >nul

给我们看看你的代码。你的代码哪里失败了?我的代码没有失败,它可以工作,但我想在其中添加这个功能,你可以看到,在我的代码中,当我打印%variable%时,会打印word1:word2,所以我想也许有一种方法可以将它们分开,并使之成为变量没有问题,很高兴我能提供帮助+我有问题,我可以用一个单词作为分隔符而不是
?我可以把变量分成3个字吗word1:word2:word3?我不确定是否可以使用多个字符进行分隔,请试试看。如果需要,可以将其分成3,只需将
&设置var3=%%c
放在
for
循环的末尾即可。