ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

VBS隐藏窗口运行Cygwin Bash内置命令/函数的方法(主要供Windows任务计划调用使用)

2022-04-22 01:33:09  阅读:259  来源: 互联网

标签:vbs hide Windows Wscript VBS Bash Cygwin bash ArgumentParamter


File:bash-hide.vbs

Dim Wsh,ScriptPath,CygwinInstallPath,CygwinInstallDrive,BashPath,ArgumentParamter

ArgumentParamter=""

'Wscript.Echo "参数个数:" & Wscript.Arguments.Count
IF Wscript.Arguments.Count >0 Then
	For i=0 To Wscript.Arguments.Count-1 
		ArgumentParamter=ArgumentParamter & Space(1) & Wscript.Arguments(i)
	Next
End If
'Msgbox ArgumentParamter
'Wscript.Quit

Set Fso=CreateObject("Scripting.FileSystemObject")
ScriptPath=Fso.GetFile(Wscript.ScriptFullName).ParentFolder.Path
Set Conf=Fso.OpenTextFile(ScriptPath & "\cygwin_installion_path.txt",1,false)
CygwinInstallPath=Conf.ReadAll()
Set Folder=Fso.GetFolder(CygwinInstallPath)
CygwinInstallDrive=Folder.Drive

BashPath=CygwinInstallDrive & "\cygwin64\bin\bash.exe"

'Wscript.Echo BashPath & " --login -i -c '" & ArgumentParamter & ";bash'"


Set Wsh=CreateObject("Wscript.Shell")
'注意:如果参数中含有中文,则必须在UTF-8的窗口中运行命令,比如在Cygwin窗口中执行 wscript //nologo bash-hide.vbs potplayertv 湖南卫视
'否则会报错,比如原生cmd窗口默认为 chcp 936编码,带中文参数调用此脚本就达不到预期的效果
Wsh.run BashPath & " --login -i -c '" & ArgumentParamter & "'",vbHide

'保持窗口可见,且不自动退出
'Wsh.run BashPath & " --login -i -c '" & ArgumentParamter & ";bash'"

其中cygwin_installion_path.txt文件保存Cygwin的安装路径(纯文本),eg:H:\cygwin64,以适配不同电脑 Cygwin 安装在不同位置的情况;


在 Cygwin 窗口中调用bash-hide.vbs

若要在Cygwin窗口中直接调用 bash-hide.vbs xxx命令,建议在会话配置文件(~/.bash_profile)中装载以下函数:

bash-hide.vbs() {
	#劫持bash-hide.vbs命令,使用wscript调用之
	#详见: D:\Extra_bin\bash-hide.vbs
	#Bash窗口隐藏
	#调用时可传递环境变量依然有效,比如:
	# _T='E:\' bash-hide.vbs cygwin  #在指定目录打开全新Cygwin窗口
	cygstart bash-hide.vbs $@
}

bash-run.vbs() {
	#劫持bash-run.vbs命令,使用wscript调用之
	#详见: D:\Extra_bin\bash-run.vbs
	#bash窗口可见
	cygstart bash-run.vbs $@
}


Windows任务计划调用示例:

标签:vbs,hide,Windows,Wscript,VBS,Bash,Cygwin,bash,ArgumentParamter
来源: https://www.cnblogs.com/cnhack/p/16177215.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有