用于从多个 IPv6 主机下载多个文件的 WinSCP 批处理脚本
WinSCP batch script to download multiple files from multiple IPv6 hosts
有人请帮忙创建一个脚本文件,以便从我的 Windows Server 2008 R2 Enterprise 中简单地执行。
我有一个 IPv6 地址为 [X25:F0:B2:F314::02]
、[X25:F1:B2:F914::56]
等的主机列表,例如 25 个主机。我需要从每个主机下载 300 个文件 revenue.xml
、prodcut_growth.xml
、loss.xml
..... 等等。下载每个文件时,我想附加日期和时间,以便文件将保存为 revenue_07_09_2017.xml
.
我尝试了以下步骤但失败了:
cd "c:\Program Files\WinSCP"
winscp.com /command "open user:password@[X25:F0:B2:F314::02]" get "/home/user/revenue.xml" "C:\downloaded\revenue.xml.%TIMESTAMP#yyyymmddhhnnss%"
get "/home/user/loss.xml" "C:\downloaded\loss.xml.%TIMESTAMP#yyyymmddhhnnss%""exit"
#Second host starts here
winscp.com /command "open user:password@[X25:F1:B2:F914::56]" get "/home/user/revenue.xml" "C:\downloaded\revenue.xml.%TIMESTAMP#yyyymmddhhnnss%"
get "/home/user/loss.xml" "C:\downloaded\loss.xml.%TIMESTAMP#yyyymmddhhnnss%""exit"
exit
我尝试执行上面的批处理文件但没有帮助。
请提出一些方法。非常感谢您的帮助。
您可以使用 batch file with a sub routines:
@echo off
call :download [X25:F0:B2:F314::02]
call :download [X25:F1:B2:F914::56]
call :download ...
exit /b
:download
echo open ftp://username:password@%1/ > script.tmp
call :addfile revenue.xml
call :addfile loss.xml
call :addfile ...
echo exit >> script.tmp
"C:\Program Files (x86)\WinSCP\winscp.com" /script=script.tmp
del script.tmp
exit /b
:addfile
echo get "/home/user/%1" "C:\downloaded\%1.%%TIMESTAMP#yyyymmddhhnnss%%" >> script.tmp
exit /b
(虽然你也想用主机修改目标路径,否则文件会互相覆盖)
另一种选择是使用 Parametrized WinSCP script。
有人请帮忙创建一个脚本文件,以便从我的 Windows Server 2008 R2 Enterprise 中简单地执行。
我有一个 IPv6 地址为 [X25:F0:B2:F314::02]
、[X25:F1:B2:F914::56]
等的主机列表,例如 25 个主机。我需要从每个主机下载 300 个文件 revenue.xml
、prodcut_growth.xml
、loss.xml
..... 等等。下载每个文件时,我想附加日期和时间,以便文件将保存为 revenue_07_09_2017.xml
.
我尝试了以下步骤但失败了:
cd "c:\Program Files\WinSCP"
winscp.com /command "open user:password@[X25:F0:B2:F314::02]" get "/home/user/revenue.xml" "C:\downloaded\revenue.xml.%TIMESTAMP#yyyymmddhhnnss%"
get "/home/user/loss.xml" "C:\downloaded\loss.xml.%TIMESTAMP#yyyymmddhhnnss%""exit"
#Second host starts here
winscp.com /command "open user:password@[X25:F1:B2:F914::56]" get "/home/user/revenue.xml" "C:\downloaded\revenue.xml.%TIMESTAMP#yyyymmddhhnnss%"
get "/home/user/loss.xml" "C:\downloaded\loss.xml.%TIMESTAMP#yyyymmddhhnnss%""exit"
exit
我尝试执行上面的批处理文件但没有帮助。 请提出一些方法。非常感谢您的帮助。
您可以使用 batch file with a sub routines:
@echo off
call :download [X25:F0:B2:F314::02]
call :download [X25:F1:B2:F914::56]
call :download ...
exit /b
:download
echo open ftp://username:password@%1/ > script.tmp
call :addfile revenue.xml
call :addfile loss.xml
call :addfile ...
echo exit >> script.tmp
"C:\Program Files (x86)\WinSCP\winscp.com" /script=script.tmp
del script.tmp
exit /b
:addfile
echo get "/home/user/%1" "C:\downloaded\%1.%%TIMESTAMP#yyyymmddhhnnss%%" >> script.tmp
exit /b
(虽然你也想用主机修改目标路径,否则文件会互相覆盖)
另一种选择是使用 Parametrized WinSCP script。