我正在尝试使用批处理文件为目录创建一个powershell脚本。
echo $ie=new-object -com "InternetExplorer.Application" >> C:\scripts\IEAutomate.ps1
echo $ie.navigate("http://google.com") >> C:\scripts\IEAutomate.ps1
echo $ie.visible=$true >> C:\scripts\IEAutomate.ps1
echo sleep 10 >> C:\scripts\IEAutomate.ps1
echo $doc=$ie.document >> C:\scripts\IEAutomate.ps1
echo if (Test-Path (c:\scripts\username.txt)) >> C:\scripts\IEAutomate.ps1
echo { >> C:\scripts\IEAutomate.ps1
echo } >> C:\scripts\IEAutomate.ps1
else >> C:\scripts\IEAutomate.ps1
echo { >> C:\scripts\IEAutomate.ps1
echo $credential=Get-Credential >> C:\scripts\IEAutomate.ps1
echo $credential.Username | ConvertFrom-SecureString | Set-Content c:\scripts\username.txt >> C:\scripts\IEAutomate.ps1
echo $credential.Password | ConvertFrom-SecureString | Set-Content c:\scripts\password.txt >> C:\scripts\IEAutomate.ps1
echo } >> C:\scripts\IEAutomate.ps1
它创建正常但是当我尝试编写一个具有管道符号(|)的行时,它不会发生并将其视为cmdlet。
请帮我完成这件事。
答案 0 :(得分:1)
在管道前插入插入符号(^
)。
这是任何批处理特殊字符的标准解决方案 - 除%
外,需要使用%
进行转义(即双倍)
答案 1 :(得分:1)
管道符号|被解释为一个特殊的角色。要打印它,您可以利用转义字符:^
例如:
echo ^|
或在你的情况下
echo $credential.Username ^| [...]
答案 2 :(得分:0)
尝试用插入符号逃避管道!
echo hi ^| joe > fred
答案 3 :(得分:0)
看一下这个URL,以逃避powershell 3.0 +中的某些字符。
要做你需要做的事,你需要一个插入符号,但在下面的链接中它解释了转义。