【问题标题】:CMD Isolated a Variable Inside a VariableCMD 隔离变量内部的变量
【发布时间】:2016-04-03 21:18:10
【问题描述】:
if [!PointX%N%:~1,1!] == [] (echo Good) Else (echo Bad!)

代码杀死批处理文件并读取:

1!] was unexpected at this time.

完整的代码是

echo off
Setlocal EnableDelayedExpansion
set /a N=1
set /a R=1
:loop
cls
echo.
echo.
echo.
echo.
if %R% EQU 1 (set /p Points=How many points do you have? ) ELSE (
echo You have %points% Total Points & echo You have %left% Points Left to Plot)
echo.
set /p PointX%N%=PointX%N% equals? 
set /p PointY%N%=PointY%N% equals? 
cls
if [!PointX%N%:~1,1!] == [] (echo Good) Else (echo Bad!)
pause
if %N% GEQ %R% (goto :Fin) ELSE (set /a N=%N%+1 & set /a R=2 & goto :loop)
:Fin
exit

任何帮助将不胜感激

【问题讨论】:

    标签: batch-file command-line cmd command-line-arguments command-prompt


    【解决方案1】:

    , 是批处理的标准分隔符 - 就像空格一样。 尝试使用引号 - 这将包含表达式:

    if "!PointX%N%:~1,1!" equ "" (echo Good) Else (echo Bad!)
    

    【讨论】:

    • 为什么 '[]' 不起作用而 ' "" ' 起作用?请你再解释一下。
    • @BrettNelson, "" 在批处理中有特殊含义,一对引号之间的所有内容都被视为单个字符串/路径/项目/参数;未加引号的字符串由默认分隔符 SPACETAB,;= 分割;像^()&<>| 这样的特殊字符在"" 之间失去了它们的特殊含义;方括号[]不过是普通字符,就像字母一样......
    • 感谢您解释它为什么更有意义希望您有一个美好的一天/晚上
    猜你喜欢
    • 2021-12-14
    • 2019-07-08
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多