2017-08-13 28 views
0

有人可以請解釋一下什麼是這個批處理文件試圖做Windows批處理文件來調用PHP腳本

setlocal 
SET tmpfile="temp3.txt" 

for %%f in (FY2?_20??.JPG) do (
    curl --form [email protected]%%f http://www.test.com/images/image_upload.php>%tmpfile% 

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

感謝您的任何幫助和建議

回答

2

它所做的就是上傳一些圖片,將某個文件名掩碼與遠程服務器相匹配,並將curl輸出存儲在日誌文件中,然後在處理這些圖像時重命名這些圖像。

但由於該答案簡短而乏味,我將逐行閱讀腳本。


setlocal 

沙箱,它們會在腳本中設置這樣一旦腳本結束,他們不能被訪問的變量。沒有必要,但良好的做法。

SET tmpfile="temp3.txt" 

設置一個名爲tmpfile到值temp3.txt變量。

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

迭代所當前目錄中的所有JPG文件與FY2開始,然後一些字符,然後_20,然後兩個字符的列表。

curl --form [email protected]%%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" 

追加在當前文件名

REN %tmpfile% "%%f.log" 

前面的字符串「私下作出─」更改日誌文件的名稱,與剛剛上傳的文件的名稱。該行告訴我,%tmpfile%變量是多餘的,並且curl輸出可能已被簡單地重定向到%%f.log而不需要臨時文件。

) 

這只是關閉for循環。

+0

curl --form image = @ %% f http://www.test.com/images/image_upload.php>%tmpfile% 這行是通過post方法向image_upload.php發送文件信息? – sanu

+1

這是正確的。每行代碼在其下面都有其描述。 – SomethingDark

+0

最後一個是你確定「在%% F(FY2?_20 ?? JPG)做(」 這將尋找currrent目錄%%˚F這是什麼意思? – sanu

相關問題