【问题标题】:BATCH FILE : not able to display variable value by accessing by %variable%批处理文件:无法通过 %variable% 访问来显示变量值
【发布时间】:2013-07-10 14:40:43
【问题描述】:

我正在使用 widows XP 操作系统并有批处理文件,我在其中设置了一些变量值。 当我回显这些变量时,我可以看到这些值,但是当我在某些命令中使用它时,我会得到空刺作为它的值。

示例批处理文件

@ECHO OFF 
          SET "output=select * from employee where empid='160'"
          CALL SET output=%%output:'=''%%
          ECHO "%output%"
sqlcmd -b -h-1 -m-1 -V1 -S testsvr  -E  -Q "%output%' " -d tesdb

o/p select * from employee where empid=''160''

sqlcmd 命令中变量的值是空格。

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    我不确定,你想做什么。

    @ECHO OFF
    SET output=select * from employee where empid="160"
    ECHO %output%
    ECHO sqlcmd -b -h-1 -m-1 -V1 -S testsvr  -E  -Q '%output%' -d tesdb
    

    ..输出为:

    select * fromemployee where empid="160" sqlcmd -b -h-1 -m-1 -V1 -S testsvr -E -Q 'select * from employee where empid="160"' -d tesdb

    【讨论】:

    • 我正在尝试执行 sqlcmd ,但是在执行过程中 %output% 值变为 null ,然后我回显它并且也有同样的问题
    • 您确实删除了最后一个echo
    • 如果empid="160" 有双引号,这不是问题的原因。 “有时会,有时不会”需要新硬盘吗??
    • 没什么,知道变量值何时丢失,在运行期间,除非我们明确将其设置为 set var =
    【解决方案2】:

    尝试如下放置引号:

    SET output="select * from employee where empid='160'"
    sqlcmd -b -h-1 -m-1 -V1 -S testsvr  -E  -Q %output% -d tesdb
    

    【讨论】:

    • 一切正常,但有时会出现,有时可能与环境变量无关,我需要重置它吗
    • 如果有时它工作正常,那么很可能是数据集或被回显的字符是问题所在。批次有毒字符。打开一个 cmd 提示符并输入您的批处理文件名 - 然后您将看到任何错误消息。
    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2013-03-07
    • 2012-07-19
    • 2013-03-26
    • 1970-01-01
    • 2018-11-18
    相关资源
    最近更新 更多