【问题标题】:BATCH: FOR LOOP with IF ELSE批处理:带有 IF ELSE 的 FOR 循环
【发布时间】:2015-02-11 05:47:07
【问题描述】:

我需要一些帮助。我想用 if-else 语句执行 for 循环,但我遇到了一些错误。 这是我的代码

mysql -u%UserName% -N -B -e "SHOW DATABASES LIKE '%%sample%%';" | FOR /F %%D IN ('C:\Windows\System32\findstr /V "information_schema performance_schema"') DO (IF EXIST %pathx%\%%D (echo test) ELSE (echo fail))

输出是

< was unexpected at this time

【问题讨论】:

  • 您的任何字符串是否包含 "%pathx% ?
  • 请显示mysql 命令的示例输出
  • 它不包含。 SET path=C:\Users\neca\Desktop 就是这样,先生。 @npocmaka
  • 这只是输出先生。 @Magoo
  • 您正在通过管道输出mysql 命令mysql -u%UserName% -N -B -e "SHOW DATABASES LIKE '%%sample%%';" 进入for/f 命令。我已要求提供该 mysql 命令的示例输出。

标签: batch-file if-statement for-loop


【解决方案1】:

您的错误报告不正确。您收到的输出是

( was unexpected at this time

您无法有效地将输出通过管道传输到 for 语句中。将您的代码更改为

FOR /F %%D IN ('mysql -u%UserName% -N -B -e "SHOW DATABASES LIKE '%%sample%%';" ^| C:\Windows\System32\findstr /V "information_schema performance_schema"') DO (IF EXIST %pathx%\%%D (echo test) ELSE (echo fail))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 2021-07-26
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多