2015-10-02 125 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