如何使用命令提示符附加包含管道符号的文本和文本文件?

时间:2014-03-27 09:21:00

标签: command-prompt

我正在尝试使用批处理文件为目录创建一个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。

请帮我完成这件事。

4 个答案:

答案 0 :(得分:1)

在管道前插入插入符号(^)。

这是任何批处理特殊字符的标准解决方案 - 除%外,需要使用%进行转义(即双倍)

答案 1 :(得分:1)

管道符号|被解释为一个特殊的角色。要打印它,您可以利用转义字符:^

例如:

echo ^|

或在你的情况下

echo $credential.Username ^| [...]

答案 2 :(得分:0)

尝试用插入符号逃避管道!

echo hi ^| joe > fred

答案 3 :(得分:0)

看一下这个URL,以逃避powershell 3.0 +中的某些字符。

要做你需要做的事,你需要一个插入符号,但在下面的链接中它解释了转义。

http://ss64.com/ps/syntax-esc.html