當給定一個可能或不可以引用的環境變量時,我需要刪除引號。批處理文件 - 如何查找字符串中的引號?
例如,我可以給出:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_144
JAVA_HOME="C:\Program Files\Java\jdk1.8.0_144"
我試圖用findstr
,它似乎從CMD.EXE很好地工作,但不是從我的批處理文件。這是我在test1.bat
:
@echo off
echo.%JAVA_HOME% | findstr \^" 1>nul
if ERRORLEVEL 0 (
echo Found Quotes
)
if ERRORLEVEL 1 (
echo No Quotes found
)
我的問題是,ERRORLEVEL
似乎總是0
,當我運行test1.bat
我總是得到消息「發現行情」。
我有此代碼刪除引號for /f "delims=" %%G IN (%JAVA_HOME%) DO SET JAVA_HOME=%%G
哪些作品發現,但只有當有引號,因此需要獲得上述findstr
條件正常工作。
三個答案,直到現在和每一個處理不同的方面。你的代碼的主要問題是你必須首先比較[最高錯誤級別](https://ss64.com/nt/if.html)你可以通過條件執行來避免這種情況:'echo:%AJVA_HOME%|雖然我不得不將''JAVA_HOME = %%〜G \'''改成''JAVA_HOME ='&'(回聲沒有找到引號)' – LotPings