【问题标题】:batch file difference between %variable% and %variable % or variable call with spaces%variable% 和 %variable% 之间的批处理文件差异或带空格的变量调用
【发布时间】:2015-01-11 15:37:04
【问题描述】:

我刚刚开始使用批处理文件编程和测试变量的瞬时使用情况。

有谁知道这两个变量调用有什么区别,最后一个 % 之前的空格

@echo off
set pathOS1="\\o1511\Pcs7ProjectO1511\OS1511\GraCS\"
ECHO We're working with %pathOS1%
ECHO We're working with %pathOS1 %

因为回声不同:

We're working with "\\o1511\Pcs7ProjectO1511\OS1511\GraCS\"
We're working with \\o1511\Pcs7ProjectO1511\OS1511\GraCS\

延迟扩展未启用。

【问题讨论】:

标签: variables batch-file spaces


【解决方案1】:

变量名中允许有空格。

set "data=100"
set "data =101"
echo %data%
echo %data %
set data

您有两个具有两个相似值的变量

【讨论】:

  • 但是他只有一个变量声明而不是两个。所以第二个echo 命令不应该显示任何东西,因为该变量没有定义
  • @a_horse_with_no_name :是的,但由于在例程开始时没有 setlocal,因此环境中的任何值 set 都保持设置,所以如果之前设置了 "pathos1 ",它的值将被保留直到被set "pathos1 =" 语句清除或cmd 被关闭。我建议该变量是先前设置的。 @op:在例程开始时使用setlocal(通常在@echo off 之后)将在例程结束时撤销对环境所做的更改。
【解决方案2】:

所以我总结了你的答案:

如果在例程开始时没有 setlocal,环境中设置的任何值都保持设置,则可能会发生这种情况,因此如果先前设置了“pathos1”,则其值将被保留,直到被设置“pathos1 =”清除语句或 cmd 已关闭。

所以,由于我没有关闭cmd,也没有设置setlocal,所以将之前设置的变量称为“pathos1 =”。 这是 setlocal 的好例子 :)

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 2013-03-26
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多