2017-12-18 235 views
1

我想弄清楚如何获得批处理文件,以允许用户输入字符串“blahblahblah = 12345”,然后STRIP字符串的前13个字符,包括等号。每当我尝试输入=(等号)时,问题是 我得到这个“=在这个时候是意外的”错误。如何从用户输入到Windows批处理文件CLI的字符串中去除等号符号?

下面是批处理脚本:

REM BEGIN 

@echo off 

set /p STUFF="type in something: " 

IF %STUFF%==blahblahblah^= goto 2 

:2 

set STUFF=%STUFF:~13% 

echo %STUFF% 

REM END 

好了,现在我真正想要的是什么,只要我不输入=(等号)的作品

因此,如果输入的是blahblahblah12345 输出是:12345

但是,如果我输入blahblahblah=12345 则输出是

=12345==blahblahblah= was unexpected this time. 

我试过做FOR /f "delims== tokens=1"的东西,但我无法弄清楚如何为我正在做的工作做好这项工作。具体来说,我想删除等号和“12345”中的“blahblahblah”,所以输出结果只是“12345”。谁能帮忙?

+0

我的建议是从一开始就不要输入**'='**!询问字符串/总和/变量然后询问价值有什么危害? “Set/P”变量=输入变量名称:“'后面跟着”Set/P“值=输入变量%的值:”' – Compo

回答

0

使用引号:

IF "%STUFF%"=="blahblahblah=" goto 2 

批扩大变量处理命令之前,因此,不带引号批量将其解释像IF blahblahblah=12345==blahblahblah goto 2造成IF失败。

+0

omfg。非常感谢你,我无法在报价单上找到任何东西。有效! –

+0

顺便说一句,你能解释为什么你需要用%STUFF%左右的引号吗?我认为它只会与“blahblahblah =”的引用一起工作,但显然情况并非如此,因为我已经尝试过了,而且没有奏效。但是你的例子DID,我只是不明白为什么你不得不引用变量的引号? –

+0

@TomcatCruiser,比较是一个LITERAL字符串比较。干净利落。 Qutoes总是用在批处理文件中以保护空间和特殊字符。我的最佳做法是始终使用它们。 – Squashman

相关问题