2017-12-18 231 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

相關問題