PowerShell中echo.命令无法识别,如何输出换行符?
PowerShell中echo.命令无法识别,如何输出换行符?
嘿,我完全懂你遇到的这个PowerShell小困扰——明明在Command Prompt里用echo.能轻松输出换行,到了PowerShell里就不管用,甚至直接输echo还会卡住等输入,试了转ANSI格式、检查目录文件都没解决对吧?
首先得说清楚,PowerShell里的echo其实是Write-Output的别名,它的语法逻辑和cmd里的echo完全不一样。cmd里的echo.是专门用来输出空行的特殊写法,但PowerShell不支持这种语法,所以才会失效。
给你几个实用的PowerShell原生解决方法,随便选一个都能搞定换行:
- 直接输出空字符串:
Write-Host '',执行后就会打出一个换行 - 使用PowerShell的换行转义符:
echo "n"或者Write-Output "n",这里的`n就是PowerShell里的换行标记 - 调用系统环境变量的换行符:
echo [Environment]::NewLine,这个会根据你当前的操作系统自动输出对应的换行格式(Windows是\r\n,类Unix系统是\n) - 要是实在怀念cmd的写法,也可以绕个弯调用cmd执行:
cmd /c echo.,不过还是更推荐用前面的原生方法哦
你之前试的转ANSI格式、检查目录里的echo.文件,其实都没戳中问题根源——这个问题和脚本的编码、目录文件无关,纯粹是PowerShell对echo命令的处理逻辑和cmd不一样导致的。
备注:内容来源于stack exchange,提问作者Danny Beckett




