我試圖從ftp位置下載帶有某個文件名的每個文件,然後在其上運行命令然後將其刪除。例如:從「\ some \ random \ ftp \ location」下載每個看起來像「* _qwerty.jpeg」的文件,然後在其上運行一個命令。一旦命令完成,將其刪除。我需要腳本忽略所有other.jpeg文件。嘗試從ftp遞歸下載特定文件並在其上運行命令
我試圖做到這一點在Windows CMD或Powershell的
沒有任何人有什麼建議?
我試圖從ftp位置下載帶有某個文件名的每個文件,然後在其上運行命令然後將其刪除。例如:從「\ some \ random \ ftp \ location」下載每個看起來像「* _qwerty.jpeg」的文件,然後在其上運行一個命令。一旦命令完成,將其刪除。我需要腳本忽略所有other.jpeg文件。嘗試從ftp遞歸下載特定文件並在其上運行命令
我試圖做到這一點在Windows CMD或Powershell的
沒有任何人有什麼建議?
最簡單的方法是使用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
我的下一個問題是<圖像路徑>部分。我會輸入本地路徑還是ftp?如果是ftp,我會如何進入? –
我試着運行「ftp -s:」部分。它接受命令文件中的所有參數,但返回以下消息「無法找到遠程文件列表」。這些文件存儲在該位置的不同子目錄中。這可能是問題嗎? –
到目前爲止您嘗試過了什麼?你有什麼代碼?你想運行什麼命令?它是本機PowerShell命令還是腳本?你提出的問題聽起來並不難,但隨着更多的信息,它會更容易幫助你。 – Nick