我在Windows上使用perl,并试图使用perl来代替占位符在文件中使用包含美元符号的Windowsvariables。 有没有人知道什么是正确的用法是使其与美元符号工作。 我已经尝试了各种方法,似乎无法得到它的工作。
例如,我有一个属性文件,其中包含一个令牌(!MYPASSWORD!),我试图replace它:
somevalue="!MYPASSWORD!"
我有一个batch file,查找一个名为NEWPASSWORD的variables,其中包含密码$ abc12345 $,我想用perlreplace来replace下面的值。 请注意,我可能并不总是知道$标志在哪里,所以我不能逃避它们。 例如,另一个密码可能是abc $ 124 $ 563:
echo %NEWPASSWORD% <-- this would contain $abc12345$ perl -p -i.bak -e "s/!MYPASSWORD!/%NEWPASSWORD%/g" a.properties
当它完成我想要a.properties是:
somevalue="$abc12345$"
提前致谢
使用'
作为正则表达式分隔符号。 它将禁用所有的变量替换:
perl -p -i.bak -e "s'!MYPASSWORD!'%NEWPASSWORD%'g" a.properties
我认为你正在从用户输入获取密码。 为什么不在Perl中这样做,而不必经过批处理,因为你已经使用Perl? 它更容易。 您可以使用像Term :: Inkey这样的模块来屏蔽密码和内容。