J'utilise batch et WinSCP pour me connecter à un serveur FTP et télécharger automatiquement certains fichiers. Après un changement de mot de passe récent, j'ai rencontré le problème que le mot de passe contient des caractères spéciaux qui ne me permettent pas de me connecter au serveur.Utiliser le traitement par lots pour convertir la chaîne en URL de session WinSCP
Les caractères spéciaux peuvent être trouvés ici: Session URL :: WinSCP
les caractères forebidden La conversion ne doit pas être un problème en théorie. J'ai utilisé le code suivant pour convertir une chaîne avec un caractère %
:
setlocal
SET test="Test % test"
set test=%test:%=%25%
echo %test%
La sortie du script est =5
.
Il y a donc un problème avec le %
. J'ai essayé d'échapper à la %
avec %%
. Par conséquent, mon code ressemble à ceci:
setlocal
set test="Test %% test"
set test=%test:%%=%%25%
echo %test%
La sortie est 5
.
Est-il possible de coder une chaîne donnée, pour répondre aux exigences de l'URL de la session avec batch? Comment puis-je encoder la chaîne?
Une partie de votre question est peut-être que la deuxième commande 'set' dans les deux exemples évalue une variable appelée' test: 'que vous n'avez pas défini. il semblerait aussi que vous pourriez avoir une variable '25' définie avec une valeur de' 5' (ce qui est une surprise). Vous pouvez essayer echo '% 25%' et voir si vous obtenez un '5' en retour. (et ensuite 'set 25 =' l'effacera). Voyez si cela aide: https://stackoverflow.com/questions/37333620/special-characters-in-batch-file – GregHNZ