我有一个需要用户输入的可执行文件。我希望能够将多个命令放在一个文件中(称为 run.sh),每个命令用于传递给程序的不同输入,例如:
program input1 input2
program input3 input4
program input5 input6
然后调用 run.sh 文件。在 Linux 的终端上,我只需调用 ./run.sh,但我不确定如何在 Windows 上执行此操作。我还愿意听取任何其他建议,以便仅使用一个命令按顺序运行此操作。谢谢!
答案1
在 Windows 10 中,您基本上有四个选项可以实现此目的,而不需要太多努力:
- 命令
创建一个文件commands.cmd
,将命令及其参数写入其中,就像在 Linux 中的 bash 中所做的那样,为了方便起见,在桌面上创建该文件的快捷方式。双击快捷方式将使其运行并执行其中的命令。
如果某些方法不起作用,请打开 Windows 命令提示符(单击开始菜单,输入cmd
并选择相应的条目,通常在列表顶部)。在命令提示符中,cd
进入您存储的文件夹commands.cmd
,然后只需输入其名称并按回车键即可执行它(就像在 bash 中一样)。
请注意,Windows 中的路径分隔符是\
。
- 电源外壳
这与 1) 中的方法相同,但使用 Powershell 解释器而不是命令提示符。Powershell 是一种由 Microsoft 发明并大力推广的编程语言,但与此同时,它在很大程度上是开源的,并且也在其他操作系统中运行。由于在 Windows 上它可以使用 .NET 类和程序集,因此它比命令提示符强大得多。
我希望我没有吓到你——从 Powershell 脚本中启动程序就像从 .cmd 脚本中执行此操作一样简单。按照 1) 中的说明进行操作,但用 替换cmd
并powershell
为脚本添加扩展名.ps1
而不是.cmd
。
在运行 Powershell 脚本之前,可能需要打开 Powershell 并在其中执行以下命令:Set-ExecutionPolicy RemoteSigned
。这是因为 Windows 拒绝执行未签名的 Powershell 脚本,即使这些脚本位于本地磁盘驱动器上。
- 西弗吉尼亚海岸
由于您似乎来自 Linux,因此您可以安装 WSL(适用于 Linux 的 Windows 子系统)。这正是它的名称所暗示的:它使用微软的虚拟化技术 Hyper-V,在 Windows 中安装功能齐全的 Linux;您甚至可以从多个发行版(debian、ubuntu 等)中进行选择,当然,您可以选择 bash(或其他 shell),因此您只需使用现有的 bash 脚本并在 WSL 中运行它们即可。
要安装它,请进入 Windows 软件管理并选择Add features
;它将在那里提供。然后,您应该能够运行 Linux 中您习惯的所有内容,除非它与硬件相关或需要 X 或 Wayland。
- 赛格威
对于 Linux 用户来说,还有一件事:您可以安装 Cygwin;这基本上是一个 DLL,它将 Linux Posix API 的很大一部分转换为 Windows API 调用,并在此基础上构建了一个(模拟的)Linux 系统。我个人已经使用它很多年了,我对它很满意。
再次强调,与硬件相关的 Linux 实用程序无法在 Cygwin 中运行,但所有常用的 Linux 命令行实用程序都可以。当然,Cygwin 还提供 bash 和其他几个 shell。Cygwin 甚至提供了一个 X 服务器,使您可以在 Windows 桌面上运行远程 Unix 或 Linux 机器上的图形程序。同样,您可以获取现有的 bash 脚本并在 Cygwin 中运行它们。