【问题标题】:Check if Windows batch variable starts with a specific string检查 Windows 批处理变量是否以特定字符串开头
【发布时间】:2015-04-15 15:55:08
【问题描述】:

例如,如果一个变量以ABC 开头,我如何找出(使用 Windows 批处理命令)?

我知道如果我知道整个内容(if "%variable%"=="abc"),我可以搜索变量,但我希望它只关注开头。

我还需要它来找出批处理文件的位置,所以如果有其他命令可以显示文件的位置,请告诉我。

【问题讨论】:

  • @mario bash 不是 Windows 批处理。

标签: variables batch-file if-statement


【解决方案1】:

使用variable substring syntax

IF "%variable:~0,3%"=="ABC" [...]

如果需要不带批处理文件名的批处理文件路径,可以使用变量:

%~dp0

help for the for command 中解释了此语法,尽管此变量语法超出了 for 命令语法。

【讨论】:

  • 而 0,3% 意味着它搜索前 3 个字母?
  • 不,它从变量中获取前三个字符。然后将第一个字符与“abc”进行比较
  • @EricRösch 这是一个子字符串。它的意思是“从字符 0(第一个)开始给我 3 个字符”。
  • @kxr 据我所知。参数变量似乎不支持子字符串,尽管我相信它们确实支持search and replace
  • 但有时不知道长度
【解决方案2】:

要查找批处理文件位置,请使用%0(为当前批处理文件提供完整补丁)或提供本地目录的%CD%变量

【讨论】:

  • %~dp0 只给出驱动器和路径,没有当前批处理文件的文件名。
猜你喜欢
  • 2014-11-28
  • 1970-01-01
  • 2022-11-30
  • 2014-12-10
  • 2012-02-06
  • 2023-01-01
  • 2011-05-04
  • 1970-01-01
相关资源
最近更新 更多