从 c# 或 .cmd 提示符执行 .sh
Execute .sh from c# or .cmd prompt
我想从 c# 或通过命令提示符(我可以通过 c# 进一步执行)执行以下 shell 脚本命令“.sh”
我通常使用以下命令来执行我的.sh 文件。
我手动执行的命令是
a) 打开 cygwin(依次调用 C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -)。这将打开 cygwin 控制台
b) 使用
转到我需要执行 .sh 文件的工作目录
cd <dir in unix format>
c) 执行.sh脚本文件
sh <path to my .sh file in unix format>
但是,我想使用命令行/c# 自动执行这些步骤
(即在不打开 console/apps 的情况下执行,如 mintty.exe 或 bash.exe)
注意:How do i start Mintty and run a script file? 中提供的示例对我没有帮助,因为它们在打开后没有执行我的命令就关闭了。
您可以 运行 直接使用 bash 脚本,使用 C:\cygwin\bash。
示例:c:\cygwin\bin\bash --login "C:\foo.bsh"
如果您还想要 mintty window(在使用 vt100 转义序列时很有用),您可以使用批包装文件。
@echo off
setlocal EnableDelayedExpansion
set "script=%~1"
set "cygwin=C:\cygwin64\bin"
set "path=!cygwin!;!path!"
mode con lines=80 cols=120
REM C:\cygwin\bin\mintty
start "cygwin window" !cygwin!\mintty.exe -i /cygdrive/c/Windows/System32/compstui.dll,53 --exec "!script!"
您应该(至少)将 cygwin/bin 目录作为路径变量的前缀,否则您会得到奇怪的结果
-i ...compstui.dll,53
仅用于更改taskbar/window
中的图标
我想从 c# 或通过命令提示符(我可以通过 c# 进一步执行)执行以下 shell 脚本命令“.sh”
我通常使用以下命令来执行我的.sh 文件。
我手动执行的命令是
a) 打开 cygwin(依次调用 C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -)。这将打开 cygwin 控制台
b) 使用
转到我需要执行 .sh 文件的工作目录cd <dir in unix format>
c) 执行.sh脚本文件
sh <path to my .sh file in unix format>
但是,我想使用命令行/c# 自动执行这些步骤 (即在不打开 console/apps 的情况下执行,如 mintty.exe 或 bash.exe)
注意:How do i start Mintty and run a script file? 中提供的示例对我没有帮助,因为它们在打开后没有执行我的命令就关闭了。
您可以 运行 直接使用 bash 脚本,使用 C:\cygwin\bash。
示例:c:\cygwin\bin\bash --login "C:\foo.bsh"
如果您还想要 mintty window(在使用 vt100 转义序列时很有用),您可以使用批包装文件。
@echo off
setlocal EnableDelayedExpansion
set "script=%~1"
set "cygwin=C:\cygwin64\bin"
set "path=!cygwin!;!path!"
mode con lines=80 cols=120
REM C:\cygwin\bin\mintty
start "cygwin window" !cygwin!\mintty.exe -i /cygdrive/c/Windows/System32/compstui.dll,53 --exec "!script!"
您应该(至少)将 cygwin/bin 目录作为路径变量的前缀,否则您会得到奇怪的结果
-i ...compstui.dll,53
仅用于更改taskbar/window