【问题标题】:BATCH: goto EOF if variable contains a wordBATCH:如果变量包含一个单词,则转到 EOF
【发布时间】:2013-04-29 11:18:30
【问题描述】:

我有一个批处理脚本,它有一个变量“%4”,它是随机文件名,但有时它的名称如下:

some.thing.here.mp3
some.other.thing.mp3
and.another.mp3
and.some.file.mp3

如果文件名包含单词“some”,我想让它转到 EOF(所以除了第三个文件之外的所有文件..)

到目前为止我有这个,但它不工作

IF /I "%4"=="some" GOTO EOF

【问题讨论】:

  • 到目前为止发布您的批处理文件。这种方式更容易测试。我猜你只需要使用 find 或 findstr

标签: batch-file


【解决方案1】:

试试这个:

echo "%4" | find /i "some" >nul 2>&1 && GOTO:EOF

【讨论】:

  • 作为一个附带问题,我可以包含多个单词吗?比如“someORotherORfoobar”?
  • 是的,但是find 会找到每个单词。
  • 所以把搜索模式放在变量set "var=some"echo "%4" | find /i "%var%"
  • 例如:echo "%4" | findstr /i "some test",更多的话你应该使用findstr
  • 我遇到了一个问题,我正在使用下面的代码在 %4 中查找单词“test”(通常是我第一篇文章中的文件名)但是在更改%5 的代码(这是一个文件夹的完整路径,例如“c:\temp\some.test.folder”)它没有捡起它..这个代码不会像它对文件一样适用于文件夹吗?回声 "%~5" | find /i "test" >nul 2>&1 && GOTO 结束
猜你喜欢
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 2016-03-21
  • 1970-01-01
  • 2021-03-07
  • 2012-07-11
相关资源
最近更新 更多