質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

13800閲覧

teratermマクロを使用したscp転送のエラーについて

merci_children

総合スコア44

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/12/09 08:35

現在TeratermマクロでSCPファイル転送をするツールを作成しています。
以下のコードでマクロを実行したところ「fopen 3」というエラーが発生し、
ファイル転送ができません。
解決策を教えていただけると助かります。

Teratermマクロ

1;; 接続報ホスト/ユーザ名設定 2HOSTADDR = '****' 3USERNAME = '****' 4SOURFILE = '/tmp/test.txt' 5DESTFILE = 'C:\tmp\test.txt' 6 7;; ①接続先ホストのパスワードを入力 8MASSAGE = 'HOST : ' 9strconcat MASSAGE HOSTADDR 10strconcat MASSAGE ' / USER NAME : ' 11strconcat MASSAGE USERNAME 12passwordbox MASSAGE 'Please input a password.' 13PASSWORD = inputstr 14 15;; ②入力確認(パスワードが入力されていない場合マクロ終了) 16strcompare PASSWORD '' 17if result=0 then 18 messagebox 'A password is not input.' 'Input error' 19 end 20endif 21 22;; ③コマンド組立て 23COMMAND = HOSTADDR 24strconcat COMMAND ':2222 /ssh /2 /auth=password /user=' 25strconcat COMMAND USERNAME 26strconcat COMMAND ' /passwd=' 27strconcat COMMAND PASSWORD 28 29;; ④接続 30connect COMMAND 31 32;; ⑤接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 33if result <> 2 then 34 messagebox 'It could not be connected.' 'Connection Error' 35 end 36endif 37 38;; ⑥接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm終了) 39timeout = 10 40wait '$' '#' 41if result = 0 then 42 disconnect 0 43 end 44endif 45 46;; ⑦ファイル送信 47scpsend SOURFILE DESTFILE 48mpause 5000 49sendln 'exit' 50 51;; ⑧マクロ終了 52end 53

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

scpsend コマンドはローカルの(つまりWindowsの)ファイルをリモートに送信します。
そのため、SOURFILE (='/tmp/test.txt')がないとエラーになっているのではないでしょうか?
リモートの(=ssh接続先の)ファイルを受信するには scprecv コマンドを使用してみてください。

参考URL
https://ttssh2.osdn.jp/manual/ja/macro/command/scpsend.html

投稿2018/12/09 10:21

fu7mu4

総合スコア1088

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

merci_children

2018/12/09 10:45

解決できました。ありがとうございます。 scpsend 送信元 送信先だったのですね。 逆だと勘違いしていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問