WinSCP 스크립트 및 실행

17490 단어 winscp
자동 다운로드에 고생하는 사람은 아래 사이트와 발췌문의 예를 참조하세요.
정리가 잘 안 되지만 필기 정도예요.
WinSCP 스크립트 예
WinSCP 스크립트 실행 예제(계정 간 공통 설정 사용)
# バッチモードに設定し、確認/問い合わせを無効にする
option batch on
# ファイル上書きの確認などを無効にする
option confirm off
# サーバーに接続
open user@example.com
# なおパスワードを指定して接続するには次のようにする
# open user:password@example.com

# リモートディレクトリを変更
cd /home/user
# バイナリモードに変更
option transfer binary
# ファイルをd:\にダウンロード(最後の\が省けません)
get examplefile.txt d:\
# 切断
close

# 異なるユーザーでサーバーに接続
open user2@example.com
# リモートディレクトリを変更
cd /home/user2
# ファイルをアップロード
put d:\examplefile.txt 
# 切断
close
# 終了
exit
이 스크립트를 "example.txt"에 저장한 다음 다음과 같이 실행합니다.
winscp.exe/console/script=example.txt
또한 "/command"옵션을 사용하여 명령줄에 같은 처리를 지정합니다.
winscp.exe/console/command "option batch on""open [email protected] ""get examplefile.txt d:\""exit"
"오픈"명령 대신 명령줄로 연결 대상 서버를 지정할 수도 있습니다.이 경우 서버에 연결한 다음 스크립트를 실행합니다.
winscp.exe/console/script=example.txt [email protected]
이것은 수동 두드리기 명령의 예이다.
WinSCP 스크립트 시작: 명령 및 배치 파일과의 공동 작업을 통해 2페이지 자동 처리
https://osdn.jp/magazine/10/04/20/1033216/2
파일 다운로드

winscp> open taro@172.17.4.69  ←172.17.4.69に「taro」というユーザーで接続
サーバを探索中・・・
サーバに接続しています・・・
認証しています・・・
ユーザ名"taro" を使用中
キーボード対話式認証を使用。
Password:  ←パスワードを入力
認証されました
セッションを開始しています・・・
リモートディレクトリを読み込み中・・・
セッションを開始しました
アクティブセッション: [1] taro@172.17.4.69  セッション番号「1」としてセッションを開始
winscp> cd public_html   ←「public_html」ディレクトリに移動
/Users/taro/public_html
winscp> lcd "%HOME%"  ←ローカルのカレントディレクトリをホームディレクトリに変更
C:\Users\taro
winscp> ls  ←リモート側のファイル一覧を表示
drwxr-xr-x  34 taro    taro         1156 Apr 14 17:24:12 2010 .
drwxr-xr-x 360 taro    taro        12240 Apr 14 17:23:54 2010 ..
-rw-r--r--   1 taro    taro         2886 Apr 14 17:24:12 2010 20061130-115028.html
-rw-r--r--   1 taro    taro         3712 Apr 14 17:24:12 2010 20061201-082224.html
 :
(省略)
 :
-rw-r--r--   1 taro    taro        25223 Apr 14 17:24:12 2010 index.html
winscp> get *.html  ←拡張子が「.html」のすべてのファイルをダウンロードする
20061130-115028.html      |          2 KiB |    0.0 KiB/s | ascii  | 100%
20061201-082224.html      |          3 KiB |    0.0 KiB/s | ascii  | 100%
 :
(省略)
 :
index.html                |         24 KiB |  948.2 KiB/s | ascii  | 100%
winscp> exit  ←WinSCPを終了する

명령줄에서 직접 실행하는 예
@echo off

REM -------------------------------------------------
REM ログパスを定義する
REM -------------------------------------------------
REM コンソールに出力されたメインのログを保存する(実行結果を確認時に使用)
@set logfile_main=C:\TEST2\logfile_main.log
REM WinSCPが自動的出力された詳細のログを保存する
@set logfile_detail=C:\TEST2\logfile_detail.log

REM -------------------------------------------------
REM コマンドラインで実行するときの共通の部分を定義する
REM [email protected]の部分は「[email protected]」という名前で保存しておいたセッションです。
REM 事前にWinSCP.exeにてパスワード付きで保存すればOK、下記の(図1)を参照くだい。
REM -------------------------------------------------
@set Program="C:\Program Files (x86)\WinSCP\WinSCP.com" aimori2@192.168.1.2 /log=%logfile_detail% /command 

REM -------------------------------------------------
REM 実際にコマンドラインで実行するコマンドを定義する
REM 下記の同期コマンドは、サーバー上のデータをローカルの該当フォルダに同期する場面に使えるコマンドです。
REM (方向はremoteサーバー->local ファイルが同じ場合ローカルを更新しない) 
REM synchronizeコマンドの後ろにいろんなパラメータを指定できますが、間違えるとサーバー上のものが消えることがありますので、理解して使用する必要があるコマンドです!!!
REM -------------------------------------------------
@set command_synchronize_1= "synchronize local -transfer=binary C:\TEST2\gggg\cmb\data\recivemaster  /gggg/cmb/data/recivemaster"
@set command_synchronize_2= "synchronize local -transfer=binary C:\TEST2\gggg\cmb\data\recivemaster2 /gggg/cmb/data/recivemaster2"

cls
echo ---------------------------------
echo START
echo ---------------------------------

@echo --------------------------------- >> %logfile_main%
REM 開始時刻を出力
@echo %date% %time% >> %logfile_main%

REM 順次にコマンドラインにてコマンドを実行する
%Program% %command_synchronize_1% "close" "exit" >> %logfile_main%
%Program% %command_synchronize_2% "close" "exit" >> %logfile_main%

REM 終了時刻を出力
@echo %date% %time% >> %logfile_main%

echo ---------------------------------
echo ScriptEnd
echo ---------------------------------
REM pause
exit
[email protected]
WinSCP에는 자주 사용하는 서버와 로그인 이름 등을 세션으로 저장하는 기능이 있습니다.저장된 세션 이름을 winscp 매개 변수로 사용합니다.com(winscp.exe)을 실행하면 WinSCP를 시작하고 지정한 세션을 즉시 호출할 수 있습니다.

(그림1)
bat에서 스크립트를 출력한 후,bat에서 스크립트를 실행하는 예시
@REM
@echo off
REM -------------------------------------------------
REM ログパスを定義する
REM -------------------------------------------------
REM コンソールに出力されたメインのログを保存する(実行結果を確認時に使用)
@set logfile_main=C:\TEST2\logfile_main.log
REM WinSCPが自動的出力された詳細のログを保存する
@set logfile_detail=C:\TEST2\logfile_detail.log
REM 実行対象ファイルを定義
@set WinSCP_scpscript=C:\TEST2\SCPcom.scp
REM 保存済みのセッションにて接続する
@set WinSCP_com="C:\Program Files (x86)\WinSCP\WinSCP.com" aimori2@192.168.1.2

cls
echo ---------------------------------
echo START
echo ---------------------------------
@echo ------------------------------------------------------------------ >> %logfile_main%
REM 開始時刻を出力
@echo %date% %time% >> %logfile_main%

REM # バッチモードに設定し、確認/問い合わせを無効にする
echo option batch on > %WinSCP_scpscript%
REM # ファイル上書きの確認などを無効にする
echo option confirm off >> %WinSCP_scpscript%
REM # バイナリモードに変更
echo option transfer binary >> %WinSCP_scpscript%


REM ------------------------------------------------------------------
REM ここに順番に実際に同期をしたいコマンドを追記する
REM ------------------------------------------------------------------
echo synchronize local -transfer=binary "C:\TEST2\gggg\cmb\data\recivemaster" /gggg/cmb/data/recivemaster >> %WinSCP_scpscript%
echo synchronize local -transfer=binary "C:\TEST2\gggg\cmb\data\recivemaster2" /gggg/cmb/data/recivemaster2 >> %WinSCP_scpscript%
echo synchronize local -transfer=binary "C:\TESTTE ST33" /gggg/cmb/data/recivemaster2 >> %WinSCP_scpscript%

REM ------------------------------------------------------------------
REM #リモートからローカルにファイルをダウンロード
REM ------------------------------------------------------------------
echo get /gggg/cmb/data/recivemaster/XXXAD001_1.txt C:\TEST33\XXXAD001_1_%%TIMESTAMP%%.txt >> %WinSCP_scpscript%


REM ------------------------------------------------------------------
REM # セッションを閉じる
REM ------------------------------------------------------------------
echo close >> %WinSCP_scpscript%

REM ------------------------------------------------------------------
REM # すべてのセッションを閉じプログラムを終了する
REM ------------------------------------------------------------------
echo exit >> %WinSCP_scpscript%

REM ------------------------------------------------------------------
REM スクリプトを実行する
REM ------------------------------------------------------------------
@REM "C:\Program Files\WinSCP\WinSCP.com" /ini="C:\Program Files\WinSCP\WinSCP.ini" [WinSCPName] /console /script=.\%WinSCP_scpscript%
@REM "C:\Program Files (x86)\WinSCP\WinSCP.com" /console /log=C:\TEST2\SCPcom.log /script=C:\TEST2\%WinSCP_scpscript% >> C:\TEST2\1.txt
%WinSCP_com% /console /log=%logfile_detail% /script=%WinSCP_scpscript% >> %logfile_main%

REM 終了時刻を出力
@echo %date% %time% >> %logfile_main%

echo ---------------------------------
echo ScriptEnd
echo ---------------------------------

exit
폴더의 용량이 큰 경우 아래를 참조하여 자동으로 파일을 압축합니다.
Lhaplus를 사용하여 DOS 명령에서 압축합니다.
Windows 명령줄에서 파일을 압축하는 방법 노트
무료 소프트웨어 Lhaplus를 사용하십시오.
>"C:\Program Files\Lhaplus\Lhaplus.exe" /c:zip /o:C:\ "C:\Documents and Settings\user\デスクトップ\test"

/:c 圧縮形式の指定
/:o 出力先の指定

上のコマンドを実行すると、
"C:\Documents and Settings\user\デスクトップ\test" 配下のファイルを、
zip 形式で圧縮し、C:\test.zip で出力される。

좋은 웹페이지 즐겨찾기