返回

Windows Midnight Commander 无法使用函数更改目录?解决方案在此!

windows

在 Windows Midnight Commander 中使用函数更改目录

问题:函数不工作

在 Windows 上的 Midnight Commander 中,使用函数更改目录不起作用。这是因为 MC 在 Windows 上使用 cmd.exe,而 cmd.exe 不支持函数。

解决方案:别名、脚本或 Pipes 文件

解决此问题的有几种方法:

  • 别名: 定义一个别名,该别名执行 cd 命令。
  • 外部脚本: 创建一个外部脚本,该脚本执行 cd 命令。
  • Pipes 文件(仅限 PowerShell): 创建管道文件,并在 PowerShell 中执行函数,然后将其输出重定向到管道文件。

步骤:使用别名

  1. 打开 cmd.exe 并输入以下命令创建别名:
alias cdtmp="cd /tmp"
  1. 在 MC 中输入 cdtpm 以更改目录到 /tmp

步骤:使用外部脚本

  1. 创建一个名为 cdtpm.bat 的脚本,其中包含以下内容:
@echo off
cd /tmp
  1. cdtpm.bat 放置在你的 $PATH 中。

  2. 在 MC 中输入 cdtpm 以更改目录到 /tmp

步骤:使用 Pipes 文件(仅限 PowerShell)

  1. 创建管道文件:
mkfifo mc.pipes
  1. 启动 MC 并加载管道文件:
mc -p mc.pipes
  1. 在 PowerShell 中输入以下命令:
cdtpm | mc.pipes

结论

通过使用别名、外部脚本或 pipes 文件,你可以解决在 Windows 上的 Midnight Commander 中使用函数更改目录的问题。根据你的具体需求,你可以选择最适合你的方法。

常见问题解答

  • Q:为什么函数在 Windows 上的 Midnight Commander 中不起作用?

  • A:因为 MC 在 Windows 上使用 cmd.exe,而 cmd.exe 不支持函数。

  • Q:别名和函数有什么区别?

  • A:别名在 cmd.exe 中定义,而函数在具有内置支持的 shell(如 bash 和 PowerShell)中定义。

  • Q:如何创建外部脚本?

  • A:使用记事本或其他文本编辑器创建包含 cd 命令的文本文件,并将其扩展名为 .bat

  • Q:什么是 pipes 文件?

  • A:pipes 文件是一个 FIFO(先进先出)缓冲区,可用于在进程之间传递数据。

  • Q:如何使用 pipes 文件?

  • A:创建一个管道文件,启动 MC 并加载管道文件,然后在 PowerShell 中执行函数并将其输出重定向到管道文件。