此时不期望==(批处理文件)

时间:2013-12-03 08:32:13

标签: if-statement

我正在制作一个有一些选项的简单.bat文件。但是,当我使用空间作为选择时,它说。 ==目前没有预料到。我做错了什么 ?

@ECHO off
title AutoMatic Program Install Beta v5 by eric
:ReturnToBaseLine
color 0a
cls
echo Made By The Amazing 
echo[
echo    ____    _       ________         ___                            
echo   / __/___(_)___  /_  __/ /  ___   / _ \_______ ___ ___ _  ___ ____
echo  / _// __/ / __/   / / / _ \/ -_) / // / __/ -_) _ `/  ' \/ -_) __/
echo /___/_/ /_/\__/   /_/ /_//_/\__/ /____/_/  \__/\_,_/_/_/_/\__/_/   
echo[                                                                   
Echo[
Echo   .-.     .-.     .-.     .-.     .-.     .-.     .-.     .-.     .-. 
Echo .'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `.
echo[
Echo Wilt u Microsoft Office Installeren(M) of een Anti-Virus Progamma(A) ?
echo[
echo         Of Wilt u Overige Software Instalereren(O) ?
echo[
echo                                  Afsluiten(X)
echo[
Echo   .-.     .-.     .-.     .-.     .-.     .-.     .-.     .-.     .-. 
Echo .'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `._.'   `.
echo[
echo[
set /p choice=Keuze : 
if not '%choice%'=='' ECHO "%choice%" Is niet een geldige optie
if '%choice%'=='M' goto Office
if '%choice%'=='m' goto Office
if '%choice%'=='A' goto Anti
if '%choice%'=='a' goto Anti
if '%choice%'=='O' goto Overig
if '%choice%'=='o' goto Overig
if '%choice%'=='X' exit
if '%choice%'=='x' exit
Pause
Goto :ReturnToBaseLine

2 个答案:

答案 0 :(得分:2)

空格是默认分隔符,因此批次看到' [separator] ' ==''

要包含一个包含空格和其他分隔符的字符串,请使用兔子耳朵%choice%

另外:您可以使用/i切换机智if来使比较不区分大小写。

答案 1 :(得分:0)

对于用双引号引起来的路径,请使用

df.withColumn(“hour”,split(col(“Time”),” “) (1).substr(0,2))
  .groupBy(“Time”,”hour”)
  .sum(“Attempt”)
  .drop(“hour”)
  .withColumn(“Time”,split(col(“Time”),”:”)(0))
  .show

代替

if [%1]==[]

当您尝试使用带引号的参数和空格调用if "%1"=="" 时会失败

try.bat

如果您使用try "hello world" ,则会出现以下错误:if "%1"==""

使用[]或不属于JS语言的任何其他定界符(请勿使用引号,双引号,(,=,+,{,