如何在windows bat脚本中调用Cygwin并执行命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在windows bat脚本中调用Cygwin并执行命令相关的知识,希望对你有一定的参考价值。
1、如果是win10用户,别折腾Cygwin了,win10已经自己支持安装Ubuntu:控制面板—卸载或者更新程序—启用或关闭windows功能—适用于Linux的windows子系统前打勾,然后再在windows自带的应用商店搜Ubuntu,然后安装,基本Linux的命令都可以运行,比Cygwin强大多了。2、如果是win7等系统,安装cygwin后,在环境变量—系统环境变量—PATH的原有值后面加分号“;”,然后再把cygwin安装的路径/bin添加在后面。
比如cygwin安装在C:\Program Files\cygwin文件夹里,那么变量路径为:C:\Program Files\cygwin\bin
3、系统环境变量弄好后,比如要执行放在C盘Program Files文件夹里的1.sh文件,那么bat文件为:bash C:\"Program Files"\1.sh
注:带空格的文件夹名需要加英文状态的引号("")
如果是win10的Ubuntu,和win7的路径写法有点不同,bat内容为:
bash /mnt/C/"Program Files"/1.sh 参考技术A 解决方案一: 在Cygwin目录中找到.bashrc或者.bash_profile文件, 添加你的命令到文件末尾。 这样做的话每次启动Cygwin都会执行你的命令。
解决方案二: @echo offC:chdir C:\cygwin\bin本回答被提问者和网友采纳
通过 Cygwin 运行 Windows .EXE 本身是不是比通过 BAT 慢?
【中文标题】通过 Cygwin 运行 Windows .EXE 本身是不是比通过 BAT 慢?【英文标题】:Is running a Windows .EXE inherently slower via Cygwin than via BAT?通过 Cygwin 运行 Windows .EXE 本身是否比通过 BAT 慢? 【发布时间】:2017-04-27 12:59:15 【问题描述】:我们正在通过 Cygwin 脚本运行 Windows .EXE 文件并遇到性能问题。我看过各种关于 Cygwin 性能问题的帖子,包括 this one,其中一个 answers 深入研究了 Cygwin 内部,让我认为可能存在问题。然而,这些帖子似乎更多地是关于启动时间、选项卡完成等。在我们开始进行基准测试之前,我想问一下:如果从Cygwin 与 BAT?
【问题讨论】:
如果您看到高 CPU 负载,这可能表明线程失控,这可能是由于您的程序中的错误以及 Cygwin 启动它的方式的一些差异引起的。 【参考方案1】:不是实际的程序,不是。
家务和东西之前运行程序可能会有所不同。 Cmd 可能直接调用CreateProcess
。 Cygwin 的 bash 可能首先进行参数解析、通配符扩展、通过 Cygwin 的缓慢实现进行分叉,并使用解析的参数调用 exec
,Cygwin 必须再次将其拼凑成一个字符串以传递给 CreateProcess
。但最终,创建了一个与其父进程没有任何联系的新进程。因此,您的程序运行速度完全取决于该程序,而不是由谁启动它。
【讨论】:
没有区别,例如标准句柄的设置方式? @HarryJohnston:我不知道,但这只会影响通过它们的输入和输出,不会影响程序运行的速度,不是吗? 通常情况下,是的,但是一个有足够缺陷的程序可能会根据标准句柄表现不同。这不会是我的第一个甚至第二个猜测,但我不会完全排除它。 :-) @HarryJohnston:嗯,总会有像these ;-) 这样的情况。以上是关于如何在windows bat脚本中调用Cygwin并执行命令的主要内容,如果未能解决你的问题,请参考以下文章
使用 Windows bat 文件打开 Cygwin 并运行脚本文件
通过 Cygwin 运行 Windows .EXE 本身是不是比通过 BAT 慢?