windows - 在 Windows 批处理中用双引号“比较一个字符

标签 windows batch-file string-comparison double-quotes

我想在 Windows 批处理文件中将单个字符与双引号 "进行比较。

@echo off
setlocal EnableDelayedExpansion
set var=before
for /f %%a in (zen.csv) do (
    set var=%%a
    echo !var:~-1!
    IF "!var:~-1!"=="""" (
        @echo found
    )
)
pause

结果是这样的:

0
1
"
"
"
0
1
2

如您所见,批处理没有输出“found”。如何用双引号比较一个字符?

最佳答案

@echo off
setlocal EnableDelayedExpansion
set var=before
for /f %%a in (zen.csv) do (
    set var=%%a
    echo !var:~-1!
    IF !var:~-1!==^" (
        @echo found
    )
)
pause

用脱字符 ^ 转义双引号成为 ^"。省略外部双引号进行比较。脱字符将转义除 之外的许多字符% 需要加倍转义成为 %%

关于windows - 在 Windows 批处理中用双引号“比较一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53171408/

相关文章:

windows - 您如何构建针对 Windows 的 perl 源代码?

批处理文件中的 Windows 7 32 位程序文件路径问题

windows - batch for循环执行命令的errorlevel

android - Git on Windows 7 for Android in Eclipse : How do I use version-control on existing project?

windows - 我有翻译 Windows Winapi/Win32/系统错误消息的 Microsoft 资源吗?

node.js - 如何在 npm 运行时设置 Windows 控制台的标题?

windows - 可执行文件如何在父 CMD 或批处理上下文中设置环境变量?

java - 在文件中搜索字符串并返回下一行(在 Java 中)

c++ - strncasecmp 和 strcasecmp 尚未声明

c# - 将一组三个字符串与另一个字符串进行比较