2012-12-11 62 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'不影響任何東西。它只是'