Ticket #38359

strconcatで記号のコピー不可

Open Date: 2018-06-27 14:07 Last Update: 2018-07-04 20:19

Reporter:
(Anonymous)
Owner:
Type:
Status:
Closed
Component:
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
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を使うことで本事象を回避できることを確認済み。

Attachment File List

No attachments

Ticket History (3/7 Histories)

2018-06-27 14:07 Updated by: None
  • New Ticket "strconcatで記号のコピー不可" created
2018-06-27 23:16 Updated by: maya
Comment

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

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
Comment

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

問題が出る部分で

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

2018-07-03 19:31 Updated by: None
Comment

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

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

※また、マクロ中で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
Comment

(匿名) への返信

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

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

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

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

2018-07-04 14:07 Updated by: None
Comment

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

2018-07-04 20:19 Updated by: doda
  • Status Update from Open to Closed
  • Owner Update from (None) to doda
  • Resolution Update from None to Won't Fix
  • Component Update from (None) to Tera Term Macro

Edit

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