最近、仕事でWinSCPを使うことがあったのですが、その時にハマった特殊文字の対応についてまとめていきます。
そもそもWinSCPって?
詳細は下記のページの説明文に記載があるため、省きますが、私はWindowsのファイル取得、転送のためのクライアントツールで、GUI、CLIが用意されています。
https://winscp.net/eng/docs/lang:jp
ハマったポイント
サーバーへ接続する時にWinSCPのGUIではうまく行ったけど、コマンドラインを使っていた時に、パスワードに「%」などの特殊文字が使われていたのですが、そのまま入力すると認識してもらえなくて接続できず苦戦したと言う話です。
下記のページによると、次のような特殊文字の場合は、こう置き換えてねーと解説がありました。
特殊文字 | 変換後の文字 |
---|---|
スペース | %20または+ |
# | %23 |
% | %25 |
+ | %2B |
/ | %2F |
@ | %40 |
: | %3A |
; | %3B |
http://winscp.net/eng/docs/session_url |
具体例
こんなコマンドを実行したいとします。パスワードに「%」が使われてますので、「%25」に置き換えます。
変換前
option batch on
option confirm off
open ftpes://hoge:hoge%hoge@10.xxx.xxx.xxx/
option transfer ascii
get * C:\download
close
exit
↓
変換後
option batch on
option confirm off
open ftpes://hoge:hoge%25hoge@10.xxx.xxx.xxx/
option transfer ascii
get * C:\download
close
exit
変換後にパスワードの文字列を変更したところうまく接続できました!
できる限り特殊文字は使わないようにしたほうがいいスネ...