チケット #38359

strconcatで記号のコピー不可

登録: 2018-06-27 14:07 最終更新: 2018-07-04 20:19

報告者:
(匿名)
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
直さない
ファイル:
なし
投票
点数: 0
No votes
0.0% (0/0)
0.0% (0/0)

詳細

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


strconcat COMMAND PASSWORD


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

チケットの履歴 (7 件中 3 件表示)

2018-06-27 14:07 更新者: None
  • 新しいチケット "strconcatで記号のコピー不可" が作成されました
2018-06-27 23:16 更新者: (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 更新者: doda
コメント

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

問題が出る部分で

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

2018-07-03 19:31 更新者: 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

(編集済, 2018-07-03 21:27 更新者: doda)
2018-07-04 09:38 更新者: doda
コメント

(匿名) への返信

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

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

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

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

2018-07-04 14:07 更新者: None
コメント

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

2018-07-04 20:19 更新者: doda
  • コンポーネント(未割り当て) から Tera Term Macro に更新されました
  • 解決法なし から 直さない に更新されました
  • 担当者(未割り当て) から doda に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする