任务单 #38359

strconcatで記号のコピー不可

开放日期: 2018-06-27 14:07 最后更新: 2018-07-04 20:19

报告人:
(匿名)
属主:
类型:
状态:
关闭
组件:
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Won't Fix
文件:
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

Tera Termを4.87から4.98にバージョンアップしたところ、strconcatにおいて、文字列に記号が含まれている場合に、正常にコピーが動作していないように思われる事象に遭遇した。 以下のようなマクロでパスワードをCOMMANDに埋め込んでいるが、記号が含まれていないパスワードの場合は正常に動作するが、記号が含まれていると一部のみがコピーされ、認証に失敗する。


strconcat COMMAND PASSWORD


ワークアラウンドとしてsprintf2を使うことで本事象を回避できることを確認済み。

任务单历史 (3/7 Histories)

2018-06-27 14:07 Updated by: None
  • New Ticket "strconcatで記号のコピー不可" created
2018-06-27 23:16 Updated by: (del#1144)
评论

以下のコードで確認しましたが、確認できませんでした。

COMMAND = "cmd:"
PASSWORD = '!"#$%&'
strconcat COMMAND PASSWORD
messagebox COMMAND ""

COMMAND = "cmd:"
PASSWORD = "'()*+,-./"
strconcat COMMAND PASSWORD
messagebox COMMAND ""

COMMAND = "cmd:"
PASSWORD = ":;<=>?@"
strconcat COMMAND PASSWORD
messagebox COMMAND ""

COMMAND = "cmd:"
PASSWORD = "[\]^_`"
strconcat COMMAND PASSWORD
messagebox COMMAND ""

COMMAND = "cmd:"
PASSWORD = "{|}~"
strconcat COMMAND PASSWORD
messagebox COMMAND ""

再現する最短のコードを示して頂けますか?

2018-06-28 09:09 Updated by: doda
评论

現在の実装では記号で問題が出るのは考えにくいです。

問題が出る部分で

messagebox COMMAND "COMMAND"
を実行して、期待通りにコピー出来たか、出来なければどこで切れるかを確認してもらえますか?

2018-07-03 19:31 Updated by: None
评论

その後調査したところ、ダブルクオーテーションが入っているとエラーになることがわかりました。

※手動で入力した場合はログインできますが、以下のマクロでログインしようとするとエラーとなります。

※また、マクロ中でmessageboxを利用してコマンドラインを確認しましたが、特に問題は見受けられませんでした。

■エラー

---------------------------
TTSSH
---------------------------
SSH2自動ログインエラー: ユーザー認証が失敗しました.
---------------------------
OK   
---------------------------

■マクロ

COMMAND = '192.168.56.103'
strconcat COMMAND ':'
strconcat COMMAND '22'
strconcat COMMAND ' /ssh /auth=password /user='
strconcat COMMAND 'root'
strconcat COMMAND ' /passwd='
strconcat COMMAND '!"#$%&'
messagebox COMMAND "COMMAND"
connect COMMAND

(Edited, 2018-07-03 21:27 Updated by: doda)
2018-07-04 09:38 Updated by: doda
评论

(匿名) への返信

その後調査したところ、ダブルクオーテーションが入っているとエラーになることがわかりました。

コマンドラインオプションのパラメータにダブルクォートを含める場合は、パラメータ全体を " で囲い、 ダブルクォートは、連続した二つのダブルクォート "" に置き換える必要があります。 https://ttssh2.osdn.jp/manual/ja/commandline/teraterm.html#note2

strconcat COMMAND ' /passwd='
strconcat COMMAND '!"#$%&'

この場合は /passwd="!""#$%&" となるようにする必要があります。

2018-07-04 14:07 Updated by: None
评论

ありがとうございました。 問題は解決しましたので、本チケットはクローズでお願いします。

2018-07-04 20:19 Updated by: doda
  • 组件 Update from (无) to Tera Term Macro
  • 处理结果 Update from to Won't Fix
  • 属主 Update from (无) to doda
  • 状态 Update from 开启 to 关闭

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名