Biến trong tập lệnh WinSCP


3

Tôi được yêu cầu tự động hóa một số quy trình tải xuống SFTP thông qua WinSCP. Tôi không quen thuộc với kịch bản WinSCP.

ftprun.cmd:

C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt

ftpscript.txt:

option batch continue
option confirm off
open MRMRSA@sftp.merimen.com
set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
cd /cygdrive/h/ftproot/PROD/MRMRSA/eMotor/
lcd D:\testsftp
mkdir %mydate%
exit

Khi tôi chạy tập lệnh, hệ thống hiển thị

Lệnh 'set' không xác định.

Đã tìm kiếm cao và thấp để giải quyết điều này nhưng không có may mắn.

Câu trả lời:


4

Thực sự không có setlệnh nào trong WinSCP.

Các setlệnh , với cú pháp bạn đang sử dụng, là một lệnh Windows.

Như vậy, bạn cần thực thi nó từ một tệp bó Windows, chẳng hạn như của bạn ftprun.cmd.

WinSCP có thể giải quyết các biến môi trường Windows trong tập lệnh của nó:

Vì vậy, tất cả những gì bạn thực sự cần làm là di chuyển setdòng đến ftprun.cmd, trước khi gọi đến winscp.com:

set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
"C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt

Dù sao, lưu ý rằng datephép thuật của bạn là đặc trưng của miền địa phương, vì vậy hãy đảm bảo rằng mọi máy, nơi bạn sử dụng tập lệnh, sử dụng cùng ngôn ngữ (ngôn ngữ) như máy bạn phát triển / kiểm tra điều này. Ví dụ với địa phương Séc của tôi, mydategiải quyết vô nghĩa 06.12čt, bởi vì đó datečt 12. 06. 2014.

Giải pháp tốt hơn, là sử dụng %TIMESTAMP%cú pháp WinSCP :

mkdir %TIMESTAMP#yyyymmdd%
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.