2012-12-11 84 views
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”之前的“<”符号?我GOOGLE了它,找不到任何东西。谢谢。

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

回答

2

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

如果你仍然想看看什么文件正在处理,你可以用这样的东西来扩展你的FOR循环。

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

参见this article关于重定向和更多信息的公共手柄(即stdinstdout)。

+0

那么0影响什么?如果不是,我只会回声消失。 – snowfi6916

+1

'0'不影响任何东西。它只是'