CMD中echo输出PowerShell代码报错的解决求助
解决CMD中输出PowerShell代码到文件的问题
报错原因
CMD会将|、(、)这类字符识别为自身的命令控制符号,而非普通文本,直接执行echo命令时会触发解析错误。
两种可行解决方案
方案1:CMD内转义特殊字符
使用^对CMD的特殊字符进行转义,命令如下:
echo $cmdOutput = ^(%env:COMPUTERNAME -replace "TEMP", "RUSS" ^| Out-String^).Trim() >> output.txt
- 每个
(、)、|前都加^,让CMD将它们当作普通文本输出,最终会把完整的PowerShell代码追加到output.txt中。
方案2:通过PowerShell写入文件
直接调用PowerShell处理写入操作,避免CMD的字符解析问题,命令如下:
powershell -Command "'$cmdOutput = ($env:COMPUTERNAME -replace ""TEMP"", ""RUSS"" | Out-String).Trim()' | Add-Content output.txt"
- 这里需要把PowerShell代码里的双引号
"换成两个双引号"",这是CMD中传递带双引号字符串的转义方式;Add-Content负责将内容追加到目标文件。
内容的提问来源于stack exchange,提问作者Appatight
相关产品推荐
相关产品推荐

