J'utilise perl sur windows et j'essaie de faire un seul doublure en utilisant perl pour substituer un espace réservé dans un fichier en utilisant une variable Windows qui contient un signe dollar. Est-ce que quelqu'un sait ce que l'utilisation correcte est de le faire fonctionner avec le signe dollar. J'ai essayé plusieurs façons et je n'arrive pas à le faire fonctionner.Perl substitution en utilisant une chaîne qui contient un signe dollar sur Windows
Par exemple, je dispose d'un fichier de propriétés qui a un jeton dans ce que je suis en train de remplacer comme (MYPASSWORD!):
somevalue="!MYPASSWORD!"
J'ai un fichier batch qui recherche dire une variable appelé NEWPASSWORD qui contient le mot de passe $ abc12345 $ et je veux utiliser la substitution perl pour remplacer la valeur comme suit. Notez que je ne sais pas toujours où les signes $ sont donc je ne peux pas leur échapper. Par exemple un autre mot de passe peut être abc 124 $ 563 $:
echo %NEWPASSWORD% <-- this would contain $abc12345$
perl -p -i.bak -e "s/!MYPASSWORD!/%NEWPASSWORD%/g" a.properties
Lorsque le fait que je veux a.properties être:
somevalue="$abc12345$"
Merci à l'avance
Je ne vois pas quelle est votre vraie question ici? Pouvez-vous donner un exemple de quelque chose qui ne fonctionne pas et ce que vous voulez qu'il fasse? C'est, * fournir du code *. – Ether
ce qui suit est le code: echo% newpassword% <- ce contiendrait abc12345 $ $ perl -p -i.bak -e "s/myPassWord /% newpassword%/g!" A.properties si la nouvelle variable de mot de passe contient $ abc12345 $ et que je lance la substitution cela ne fonctionne pas – user275633