1

我编写了一个批处理文件,它将遍历目录的内容并为每个文件执行一个 mysql 命令。

这是代码:

SET FilePath=D:\COUNTR~1\blah\*.sql

FOR %%a IN (%FilePath%) DO mysql -u root -plinuxsux blah < "%%a"

在 Windows 的命令行中,它返回如下:

mysql -u root -plinuxsux blah 0<"absolute\path\to\my\sql\file.sql"

我到底如何摆脱“<”符号之前的那个愚蠢的迭代“0”?我用谷歌搜索,找不到任何东西。谢谢。

顺便说一句,mysql 命令仍然成功执行并显示在数据库中。

4

1 回答 1

2

添加的是文件被输入0的标记。stdin我可能会建议添加@ECHO OFF到批处理脚本的开头以摆脱命令行的自动回显。

如果您仍然想查看正在处理的文件,您可以FOR使用类似的内容扩展您的循环。

FOR %%a IN (%FilePath%) DO (
    ECHO Processing %%a...
    mysql -u root -plinuxsux blah < "%%a"
)

有关重定向和常用句柄(即, )的更多信息,请参阅本文。stdinstdout

于 2012-12-11T20:37:38.730 回答