【问题标题】:Change default echo in Windows CMD更改 Windows CMD 中的默认回显
【发布时间】:2022-10-17 13:10:43
【问题描述】:

我正在使用 UnxUtils 在 Windows CMD 中运行 Bash 命令。 Bash 文件存储在C:\Users\username\win_bash\。我已将该文件夹添加到 Windows PATH 中,因此无论我在哪个文件夹中,我都可以从 cmd 访问它。我想覆盖默认的 Windows echo 命令。目前我可以通过指定 Bash echo 命令的整个路径来做到这一点:C:\Users\win_bash\echo.exe。我可以将 Bash 的 echo 设为默认值,这样我就可以在没有命令的整个路径的情况下键入 echo 吗?

【问题讨论】:

  • 在 bash 中,echo 是内置的。由于 POSIX 原因,它也存在和外部程序,但除非明确调用,否则该版本实际上从未使用过。
  • 好吧,可以使用%SystemRoot%\System32\doskey.exe echo=C:\Users\win_bash\echo.exe $* 定义运行echo.exe,并将参数传递给这个可执行文件,而不是运行cmd.exe 的内部命令echo。但是内部命令 echo 在参数解析中与运行可执行文件不同,因为字符串包含空格或其中一个字符 ()[]{}^=;!'+,`~ 不得包含在 " 中,这是将此类字符串传递给可执行文件以运行所必需的通过cmd.exe。只有像&<>| 这样的字符才能通过命令echo 输出,必须使用^ 进行转义。
  • 因此,我预计将cmd.exe 的内部命令echo 替换为doskey 宏会遇到很多麻烦,即使仅针对命令提示符窗口或某些批处理文件这样做也是如此。但是,您可以根据需要使用它,并且它至少适用于您认为使用 echo.exe 比使用 Windows 命令 echo 更好的用例。

标签: bash batch-file cmd


【解决方案1】:

是的,您可以更改系统路径在编辑默认路径后查找默认路径您可以更改或删除系统变量

使用C:Userswin_bashecho.exe 编辑路径


我是 Linux 用户,您在下面尝试了此解决方案,请确保在应用更改之前复制默认路径和设置,以便在出现任何问题时恢复原状。

https://www.java.com/en/download/help/path.html

【讨论】:

  • 您不会将可执行文件添加到%path%,而是添加用于搜索可执行文件的文件夹。在cmd 中,echo 是一个内部命令,将在不搜索同名可执行文件的情况下执行该命令。使用外部“回声”的唯一方法是使用"echo.exe" string(是的,包括引号(仅当echo.exe 位于当前工作文件夹或%path% 中的任何位置时才有效;否则为完整路径(如问题)是必需的))。没有引号echo.exe string 将回显exe string(使用内部echo 命令))
  • "echo"(不带 .exe)也在工作。你应该把它作为答案 xD
猜你喜欢
  • 2017-09-27
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2014-11-09
  • 2012-03-07
  • 1970-01-01
  • 2019-03-13
相关资源
最近更新 更多