【发布时间】:2015-09-08 09:46:30
【问题描述】:
这是我的 powershell 脚本 test.ps1:
Write-Output $args;
现在假设我有一个批处理脚本,它使用各种路径调用这个 powershell 脚本。其中之一是c:\:
powershell -executionpolicy Bypass -file test.ps1 "c:\"
输出是:
c:"
有什么方法可以引用我的论点,以使 c:\ 实际上被采用并按原样存储在 $args[0] 变量中?我知道我可以通过"c:\\" 解决这个quick'dirty,但这不是一个真正的解决方案。
编辑:在 test.ps1 中使用命名参数没有任何区别:
[CmdletBinding()]
param(
[string]$argument
)
Write-Output $argument;
EDIT2:使用批处理文件可以正常工作。
我的 test.bat 脚本:
echo %~1
我运行它:
test.bat "c:\"
回报不错:
c:\
【问题讨论】:
-
反斜杠似乎被用作转义字符,但前提是它是引用字符串中的最后一个字符。
标签: powershell arguments