在VS Code中调试PowerShell脚本时,我遇到了一个奇怪的问题。我试图用运行脚本之前需要设置的变量初始化我的arguments数组。我的launch.json
包含:
{
"version": "0.2.0",
"configurations": [
{
"name": "PowerShell",
"type": "PowerShell",
"request": "launch",
"program": "${file}",
"args": ["wgoulet","f0tobug\u003b","c:\\usercode\\entries.txt"],
"cwd": "${file}"
},
{
"name": "PowerShell x86",
"type": "PowerShell x86",
"request": "launch",
"program": "${file}",
"args": [],
"cwd": "${file}"
}
]
}
在我的调试会话中,当我检查$args
数组的内容时,我看到';'之后的参数字符被忽略,以及分号本身。
换句话说,当我查看PowerShell中的$args
参数时,我看到以下内容:
$args[0]="wgoulet"
$args[1]="f0tobug"
我期待看到的是
$args[0]="wgoulet"
$args[1]="f0tobug;"
$args[2]="c:\\usercode\\entries.txt"
如果我修改'f0tobug;'
参数以使其不包含';',则会正确填充arguments数组。我甚至试过编码';'作为带有\u003b
的Unicode,但我得到了相同的结果。