2015-10-02 149 views
1

我有一個包含這一個bat文件:使用curl HTTP POST發送多個文件fropm一個bat文件

For %%f in (D:\OrderUploads\company\xmls\*.xml') do curl --form [email protected]:\OrderUploads\company\xmls\%%f --form press=OK http://gateway.companyname.com:5400/companyGateway 

這是行不通的。我有多個xmls,我需要發佈bat文件,計劃在xml文件創建後運行。所有的登錄信息都在xml文件的頭文件中。如果我運行這個從命令提示符下正常工作:

curl --form [email protected]:\OrderUploads\company\xmls\dt.xml --form press=OK http://gateway.Company.com:5400/CompanyGateway 

回答

2

如果運行For %%f in (D:\OrderUploads\company\xmls\*.xml') do echo %%f你會看到%%f變量已經包含了諸如D:\OrderUploads\company\xmls\dt.xml完整路徑,所以根本就沒有指定curl命令行的路徑:

For %%f in (D:\OrderUploads\company\xmls\*.xml) do (
    curl --form [email protected]%%f --form press=OK http://gateway.companyname.com:5400/companyGateway 
) 

或者,您可以使用%%~ prefix來提取drive:\path\name.ext的任何部分,例如%%~nxf

+0

謝謝你沒有工作,雖然我試着運行這個%% f(D:\ OrderUploads \ company \ xmls \ *。xml')做echo %% f但沒有任何迴應。 – Vic

+0

@Vic,還有一個額外的符號「'',我從你的問題中盲目複製,看起來像一個錯字,將其刪除。正如您現在所看到的,手動運行小部件的命令有助於診斷錯誤。 – wOxxOm

+0

謝謝!我完全錯過了那張單曲。所以現在它確實迴應它,我看到了路徑。非常好,但是當我用curl語句運行它時,它不會發送它。它只是閃現一扇窗戶,然後關閉。我放了一個暫停語句,它不執行curl命令。當我從命令提示符手動運行curl語句時,它連接到服務器。感謝你的幫助!!! – Vic