用于调用PHP脚本的Windows批处理文件

时间:2017-08-13 05:23:46

标签: windows batch-file image-uploading

有人可以解释这个批处理文件试图做什么

setlocal
SET tmpfile="temp3.txt"

for %%f in (FY2?_20??.JPG) do (
    curl --form image=@%%f http://www.test.com/images/image_upload.php>%tmpfile%

    REN "%%f" "DONE-%%f"
    REN %tmpfile% "%%f.log"
 )

感谢您的任何帮助和建议

1 个答案:

答案 0 :(得分:2)

所有这一切都是将一堆与特定文件名掩码匹配的图像上传到远程服务器,并将curl输出存储在日志文件中,然后在处理完这些图像后重命名。

但由于答案很简短而且很无聊,我会逐行浏览。

setlocal

沙箱化脚本中设置的变量,以便在脚本结束后无法访问它们。没有必要,但是很好的做法。

SET tmpfile="temp3.txt"

将名为tmpfile的变量设置为值temp3.txt

for %%f in (FY2?_20??.JPG) do (

迭代当前目录中以FY2开头的每个JPG文件的列表,然后是一些字符,然后是_20,然后是另外两个字符。

    curl --form image=@%%f http://www.test.com/images/image_upload.php>%tmpfile%

通过该网站的image_upload.php页面将每张图片上传到www.test.com。 curl命令的输出被重定向到其位置先前存储在%tmpfile%变量中的文件。 >表示覆盖文件的内容或创建新文件(如果不存在)。 --form选项使curl通过POST而不是GET发送图像。

    REN "%%f" "DONE-%%f"

追加字符串" DONE - "在当前文件名前面

    REN %tmpfile% "%%f.log"

更改日志文件的名称以匹配刚刚上传的文件的名称。这一行告诉我%tmpfile%变量是多余的,curl输出可以简单地重定向到%%f.log,而不需要临时文件。

 )

这只会关闭for循环。