1
バッチとWinSCPを使用してFTPサーバーに接続し、いくつかのファイルを自動的にアップロードしています。最近パスワードを変更した後、パスワードに特殊文字が含まれているため、サーバーに接続できないという問題が発生しました。バッチを使用して文字列をWinSCPセッションURLに変換する
の特殊文字はここで見つけることができます:forebidden文字の変換Session URL :: WinSCP
は、理論的には問題になることはありません。
setlocal
SET test="Test % test"
set test=%test:%=%25%
echo %test%
スクリプトの出力は=5
次のとおりです。私は%
文字で文字列を変換するには、次のコードを使用していました。
%
に問題があります。 %%
で%
を逃れようとしました。
setlocal
set test="Test %% test"
set test=%test:%%=%%25%
echo %test%
出力は5
次のとおりです。したがって私のコードは次のようになります。
バッチでセッションURLの要件を満たすために、指定された文字列をエンコードすることは可能ですか?どのように文字列をエンコードすることができますか?
あなたの問題の一部は、両方の例における第二' set'コマンドは 'testという変数を評価していることかもしれません。 '5'という値で定義された変数' 25'を持つように見えます(これは驚きです)。 echo '%25%'を試してみて、 '5'が戻ってくるかどうか確認してください。 (そして 'set 25 ='がそれをクリアします)。これが役立つかどうかを確認してください:https://stackoverflow.com/questions/37333620/special-characters-in-batch-file – GregHNZ