2012-10-11 70 views
0

我試圖從ftp位置下載帶有某個文件名的每個文件,然後在其上運行命令然後將其刪除。例如:從「\ some \ random \ ftp \ location」下載每個看起來像「* _qwerty.jpeg」的文件,然後在其上運行一個命令。一旦命令完成,將其刪除。我需要腳本忽略所有other.jpeg文件。嘗試從ftp遞歸下載特定文件並在其上運行命令

我試圖做到這一點在Windows CMD或Powershell的

沒有任何人有什麼建議?

+0

到目前爲止您嘗試過了什麼?你有什麼代碼?你想運行什麼命令?它是本機PowerShell命令還是腳本?你提出的問題聽起來並不難,但隨着更多的信息,它會更容易幫助你。 – Nick

回答

0

最簡單的方法是使用Ftp.exe並用參數文件驅動它。使用mget下載帶有通配符的文件。使用foreach循環遍歷文件並執行一些操作。像這樣,

<commandfile> 
lcd <path-to-local-dir> 
open <ftp-site> 
<username> 
<password> 
bin 
cd <path-to-remote-dir> 
prompt 
mget <filename-with-wildcards> 
close 
bye 

使用PowerShell中的命令文件很簡單:

Ftp -s:<commandfile> 
foreach($i in gci <path-to-images>) { 
    <do-something> $i 
} 

你可以做批處理腳本也是相同的(記得在腳本中使用雙%,單在%命令行)。

Ftp -s:<commandfile> 
for /f "tokens=*" %j in ('dir /b <path-to-images') do <do-something> %j 
+0

我的下一個問題是<圖像路徑>部分。我會輸入本地路徑還是ftp?如果是ftp,我會如何進入? –

+0

我試着運行「ftp -s:」部分。它接受命令文件中的所有參數,但返回以下消息「無法找到遠程文件列表」。這些文件存儲在該位置的不同子目錄中。這可能是問題嗎? –

+0

當然指的是FTP保存圖像的本地目錄。 – vonPryz

相關問題