Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理中IF语句的奇数行为_Batch File_If Statement_Text - Fatal编程技术网

Batch file 批处理中IF语句的奇数行为

Batch file 批处理中IF语句的奇数行为,batch-file,if-statement,text,Batch File,If Statement,Text,我有一个非常简单的批处理脚本 我正在考虑在本地使用wget和版本文件实现一个更新程序,并托管在我的服务器上(但出于某种原因,我使用批处理) 它引用的文本文件只包含 1.0.0 甚至连一条新线路都没有。回显%version%会在控制台中显示1.0.0,但if语句不会得到任何结果 有人想指出我的错误吗?老实说,我不知道您似乎在set命令的末尾有一个令人恶心的空格 批处理对SET语句中的空格敏感SET FLAG=N将名为“FLAGSpace”的变量的值设置为“SpaceN” 语法设置“var=val

我有一个非常简单的批处理脚本

我正在考虑在本地使用wget和版本文件实现一个更新程序,并托管在我的服务器上(但出于某种原因,我使用批处理)

它引用的文本文件只包含

1.0.0
甚至连一条新线路都没有。回显
%version%
会在控制台中显示
1.0.0
,但if语句不会得到任何结果


有人想指出我的错误吗?老实说,我不知道

您似乎在
set
命令的末尾有一个令人恶心的空格

批处理对
SET
语句中的空格敏感
SET FLAG=N
将名为“FLAGSpace”的变量的值设置为“SpaceN”


语法
设置“var=value”
(其中值可能为空)用于确保分配的值中不包含任何多余的尾随空格
set/a
可以安全地“无引号”使用。

您似乎在
set
命令的末尾有一个令人恶心的空格

批处理对
SET
语句中的空格敏感
SET FLAG=N
将名为“FLAGSpace”的变量的值设置为“SpaceN”


语法
设置“var=value”
(其中值可能为空)用于确保分配的值中不包含任何多余的尾随空格
set/a
可以安全地“无引号”使用。

这很棘手。
set version=%%x
的末尾有一个空格

作为脚本约定的一般要点,每当您在批处理脚本中将变量设置为字符串时,除非您有特定的理由不这样做,否则您应该使用var=value对进行
set“variable=value”
。这有助于避免类似的问题。您的
for/f
行应以
set“version=%%x”

对于尾随空格,您基本上是说
如果“1.0.0”==“1.0.0”
,这是错误的


顺便说一句,如果您愿意,可以从web服务器获取内容。

这很棘手。
set version=%%x
的末尾有一个空格

作为脚本约定的一般要点,每当您在批处理脚本中将变量设置为字符串时,除非您有特定的理由不这样做,否则您应该使用var=value对进行
set“variable=value”
。这有助于避免类似的问题。您的
for/f
行应以
set“version=%%x”

对于尾随空格,您基本上是说
如果“1.0.0”==“1.0.0”
,这是错误的


顺便说一句,如果您愿意,可以从web服务器获取内容。

因此,我想我理解您的意思哇,关于NewLine的评论我稍微更改了脚本
@echo off
for/f“tokens=*delims=“%%x in”(%CD%\version.txt)如果“%curr%”==“1.0.0”(echo yes),请设置/a curr=%%x
现在它告诉我错误的参数(特别是当我添加/a时),所以,我想我理解了你的意思。哎哟,在NewLine上的评论我稍微更改了脚本
@echo off
for/f“tokens=*delims=“%%x in”(%CD%\version.txt)如果“%curr%”==“1.0.0”(echo yes),请设置/a curr=%x
现在它告诉我错误的参数(特别是当我添加/a时)
1.0.0