BAT script to copy files from Windows to remote Linux systems
Is there anyway to copy files from Window开发者_运维百科s machine to a remote Linux machine with a DOS command/other command-line tool (by specifying username and password in the command). I normally do this using WinSCP and would like to write a script (BAT) to automate this.
You could use the command line version of PuTTY, pscp.exe.
WinSCP scripting command-line to upload a file is like:
winscp.com /command "open sftp://username@example.com/" "put d:\www\index.html" "exit"
See the guide to WinSCP scripting.
Easier is to use a Generate transfer code function to have WinSCP GUI generate a script (or even a complete batch file) for a transfer.
Download a copy of pscp.exe (the PuTTY scp companion). If you have setup SSH keys on the Linux server, which you can do with PuTTY on Windows, you can setup password-less copy to Linux machines from Windows.
Install cygwin and you can use scp, ssh etc just like you would on linux. Besides, you can use ordinary bash scripts instead of crappy bat-files.
If anyone is looking to do this in 2022, Windows 10 now comes with scp. You can do
scp path/localfile.txt remote-user@host:/home/path
or the recursive version for directories
scp -r localfolder remote-user@host:/home/path
Of course with scp you'll run into issues if you have a large number of files. It copies everything as opposed to only changed / new files only.
Then you'll need a tool like rsync, which is available through WSL (windows subsystem linux).
rsync -r localfolder remote-user@host:/home/path
(I personally hesitate to install new tools for a job, hence my desire to stick with what's already available)
精彩评论