Jasypt 无法读取 windows 上的字面符号?
Jasypt unable to read literal ampersand on windows?
以下命令:
C:\users\xxx\jasypt-1.9.3\bin> ./encrypt.bat password=password input=test.com/test?v=v&w=w
抱怨不允许使用问号 ("&")。所以我尝试将其转义为 "&"
或 ^&
但 Jasypt 似乎剥离了 &
以及它之后的内容。
C:\users\xxx\jasypt-1.9.3\bin> ./encrypt.bat password=password input=test.com/test?v=v^&w=w
...
----ARGUMENTS-------------------
input: test.com/test?v=v
password: password
...
'w' is not recognized as an internal or external command,
operable program or batch file.
我要怎么做才能让 Jasypt 将其读作字面的 & 符号,或者这是 windows 的东西?
PowerShell的转义符是`
(反引号),不是^
,这是cmd.exe.
特有的
然而,未加引号 &
是元字符(具有特殊句法意义的字符)在两个个炮弹。
因此,为了确保 PowerShell 按原样通过 &
到 ./encrypt.bat
,以下所有变体都有效(因为您的参数不包含对 PowerShell 变量 ($...
) 的引用,"..."
(可扩展(内插)字符串)和 '...'
(文字字符串)可以互换使用):
./encrypt.bat password=password input=test.com/test?v=v`&w=w
./encrypt.bat password=password input=test.com/test?v=v"&"w=w
./encrypt.bat password=password input=test.com/test?v=v'&'w=w
./encrypt.bat password=password "input=test.com/test?v=v&w=w"
./encrypt.bat password=password 'input=test.com/test?v=v&w=w'
既然你说是./encryp.bat
投诉的,言下之意是./encrypt.bat
执行不力,没有使用"..."
进一步处理它接收的参数,导致 cmd.exe
个元字符(例如 &
中断处理。
为了解决这个问题,您必须 另外 预期 cmd.exe
的转义需求,并在从 PowerShell 传递的参数中包含文字 ^
:
./encrypt.bat password=password 'input=test.com/test?v=v^&w=w'
以下命令:
C:\users\xxx\jasypt-1.9.3\bin> ./encrypt.bat password=password input=test.com/test?v=v&w=w
抱怨不允许使用问号 ("&")。所以我尝试将其转义为 "&"
或 ^&
但 Jasypt 似乎剥离了 &
以及它之后的内容。
C:\users\xxx\jasypt-1.9.3\bin> ./encrypt.bat password=password input=test.com/test?v=v^&w=w
...
----ARGUMENTS-------------------
input: test.com/test?v=v
password: password
...
'w' is not recognized as an internal or external command,
operable program or batch file.
我要怎么做才能让 Jasypt 将其读作字面的 & 符号,或者这是 windows 的东西?
PowerShell的转义符是`
(反引号),不是^
,这是cmd.exe.
然而,未加引号 &
是元字符(具有特殊句法意义的字符)在两个个炮弹。
因此,为了确保 PowerShell 按原样通过 &
到 ./encrypt.bat
,以下所有变体都有效(因为您的参数不包含对 PowerShell 变量 ($...
) 的引用,"..."
(可扩展(内插)字符串)和 '...'
(文字字符串)可以互换使用):
./encrypt.bat password=password input=test.com/test?v=v`&w=w
./encrypt.bat password=password input=test.com/test?v=v"&"w=w
./encrypt.bat password=password input=test.com/test?v=v'&'w=w
./encrypt.bat password=password "input=test.com/test?v=v&w=w"
./encrypt.bat password=password 'input=test.com/test?v=v&w=w'
既然你说是./encryp.bat
投诉的,言下之意是./encrypt.bat
执行不力,没有使用"..."
进一步处理它接收的参数,导致 cmd.exe
个元字符(例如 &
中断处理。
为了解决这个问题,您必须 另外 预期 cmd.exe
的转义需求,并在从 PowerShell 传递的参数中包含文字 ^
:
./encrypt.bat password=password 'input=test.com/test?v=v^&w=w'