簡體   English   中英

變量上的批處理腳本條件

[英]batch script conditions on variables

我想將批處理腳本的第一個參數用作變量。 如果包含FULL,則將所有變量設置為1,如果為空,則要求每個變量。

但是我不能使我的代碼正常工作:

 @echo off
        color 02

    ::-----------------------------------------
    :: Variables
    set Preset=%1 
    set Profile=%2 
    set NeedToPassTheTests=1
    set PublishAPI=0

    REM ---------------------
REM We fill the variables depending on the arguments
echo(%1
if defined Preset (

if "%Preset%"=="FULL" (
echo FULL
set PublishOCPP=1
set NeedToPassTheTests=1 
set PublishAPI=1
)

) else (
    REM No preset so we are going to ask
    set /p PublishAPI="Publish API ? (0 or 1).............. ? "
    set /p NeedToPassTheTests="Test the projects before ? (0 or 1).............. ? "
)


echo NeedToPassTheTests %NeedToPassTheTests% 
echo %PublishAPI%

echo.
pause

我懂了

命令的語法不正確

而且最后我的echo不會打印該值(當我刪除ifs時),它僅顯示echo已關閉。

我從.bat文件開始,我只嘗試了isEmpty測試(從此處獲取: 測試批處理文件中變量是否為空的正確方法是什么? ),它也不起作用。

你知道為什么嗎 ?

更新:當我將FULL作為參數傳遞但我的變量未更新時,它可以工作。 但是,如果參數為空,則不起作用(即不要求我填充變量)。

我不確定代碼中存在哪些錯誤,但是我可以在一秒鍾內看到幾個錯誤。

set NeedToPassTheTests=1會將名為NeedToPassTheTests的變量設置為值1

set NeedToPassTheTests<space>=1會將NeedToPassTheTests<space>設置為1

set NeedToPassTheTests<space>=<space>1會將NeedToPassTheTests<space>設置為<space>1

因此,首先,消除所有不必要的空間。

set NeedToPassTheTests = 1

刪除空格。 批處理是對分配的OTH兩側空間敏感-你是一個名為“NeedToPassTheTests 空間 ”變量設置為“ 太空 1”的值

要測試變量var是否為空:

if defined var (echo variable is not empty) else (echo variable is empty)

怪癖:

echo(%var%

如果變量不為空,則顯示變量,否則為空行(不是echo狀態)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM