Articles of shell

在VB.net中获取shell命令的输出

我有一个VB.net程序,我在其中调用Shell函数。 我想从文件中得到这个代码产生的文本输出。 但是,这不是执行代码的返回值,所以我真的不知道该怎么做。 这个程序是一个服务,但有权访问磁盘没有问题,因为我已经logging了其他信息。 整个服务有多个线程,所以我还必须确保在写入文件的时候,它还没有被访问。

如何运行脚本来确定cmd.exe或gnu mingw shell是否在运行

我想写一个脚本,在Windows 7平台上运行一些git命令。 用户安装了git工具,或者至less是MINGW – 用于Windows的极简主义GNU。 麻烦的是一些用户从MINGW32 shell和其他cmd.exe运行。 使用MINGW32 shell的示例shell: $ echo $SHELL /bin/sh 使用cmd.exe的示例shell >echo %COMSPEC% C:\Windows\system32\cmd.exe 有没有什么办法可以从我的初始脚本确定shell,然后可能运行一个Windowsbatch file或其他的Unix脚本? 或者另一个想法是假设用户将使用git bash,只需检查$ SHELL是/ bin / sh。 这更容易吗?

windows子命令评估

linux&unix shell可以像这样处理子命令。 $> command `subcommand` windows cmd的shell有类似的function吗?

在shell中执行几个提升的命令(或类似的)

我有一个需要提升权限执行几个命令,如: 调用修改服务的.config文件的程序(需要pipe理员权限) 净停止myservice(需要pipe理员权限) 网开始myservice(需要pipe理员权限) 所有这些dynamic的,例如第一行可能包含代理设置,包括用户名和密码,或对设置文件的任何其他修改。 (设置文件在程序文件夹中,外部提供修改设置文件的程序,实际的信息将由用户通过GUIinput)。 我想创build一个非常灵活的解决scheme,使用带有redirectstdin和stdout的cmd.exe进程。 但是..它看起来像“runas”(需要ShellExecute)和redirectinput/输出是独家。 (另外,我注意到redirect和cmd.exe是很难处理..我必须编写自己的函数,例如作为ReadLine的替代品,因为ReadLine在最后期待​​NewLine并等待,如果有一个命令提示符(这意味着你的文本就像c:\ bla>,但是没有NewLine,但是不知道结果是什么,所以写一些通用的东西很困难。) 我能想到的有三种select: 得到每一个命令的UAC提示(我不喜欢那个) 启动一个提升的进程,然后可以调用任何想要的东西 – >需要额外的项目(.exe),我想避免,也使得部署更加困难(附加文件) 在飞行中创build一个batch file,运行它提升。 这也是我想避免的,因为在那个文件中可能有纯文本的密码信息(例如用户/密码代理)。 我至less要确保总是覆盖它的内容,然后删除它。 如何处理这个?

在没有shell窗口的情况下运行shell命令

使用subprocess.call或subprocess.Popen ,执行shell命令会使shell窗口快速出现并消失。 我如何在没有shell窗口的情况下运行shell命令?

如何在Windows 10 Enterprise上作为shellreplace运行应用程序

我需要在运行Windows 10 Enterprise的计算机上创build一个特殊帐户。 此帐户将直接在login时启动应用程序而不是默认shell,退出应用程序应强制重新启动计算机。 我可以使用configuration控制台和lockingfunction在Windows 8.1 Embedded Industry Pro上轻松完成此操作。 现在,在Windows 10上,我尝试关注technet上的两个教程WESL_UserSetting,并在Windows 10专业版,企业版或教育版上设置自助服务 terminal 但是,这两个教程都不起作用。 我已经设法执行在他们描述的脚本,但他们没有任何效果(我已经修改它们,所以他们不删除壳集)。 最后,我已经结束了以下代码: $COMPUTER = "localhost" $NAMESPACE = "root\standardcimv2\embedded" $ACCOUNT_NAME = "cmp" $ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting" $NTUserObject = New-Object System.Security.Principal.NTAccount($ACCOUNT_NAME) $NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier]).Value $NTUser_Shell = Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | where {$_.Sid -eq $NTUserSID} if ($NTUser_Shell) { "`Custom shell already […]

运行软件作为独家壳牌应用?

以前曾被问过(2001),但没有解决办法。 http://forums.techguy.org/windows-xp/58217-exclusive-shell-applications.html 在BPM Studio中,您可以select将软件作为“独占壳牌应用程序”运行。 login到Windows后,立即出现BPM Studio,并且没有其他与Windows相关的任务栏(桌面图标等)加载。 在退出BPM时,用户返回到Windowslogin屏幕。 有谁知道这是如何实现的? 我想为我正在做的一些软件做类似的事情。 我做了很多研究,找不到任何线索! 谢谢

Shell脚本:通过ssh脚本运行函数

有没有什么聪明的方法通过ssh在远程主机上运行本地Bash函数? 例如: #!/bin/bash #Definition of the function f () { ls -l; } #I want to use the function locally f #Execution of the function on the remote machine. ssh user@host f #Reuse of the same function on another machine. ssh user@host2 f 是的,我知道这是行不通的,但有没有办法做到这一点?

在Unix(或Windows)中,如何使用(最好是未命名的)pipe道将一个进程的stdout发送到多个进程?

我想将进程proc1的stdoutredirect到两个进程proc2和proc3: proc2 -> stdout / proc1 \ proc3 -> stdout 我试过了 proc1 | (proc2 & proc3) 但它似乎并没有工作,即 echo 123 | (tr 1 a & tr 1 b) 写 b23 stdout而不是 a23 b23

如何以与我可以在Windows资源pipe理器中“发送到邮件收件人”相同的方式以编程方式发送电子邮件?

ShellExecute()允许我执行简单的shell任务,允许系统打开或打印文件。 我想采取类似的方式来以编程方式发送电子邮件附件。 我不想直接操纵Outlook,因为我不想假设用户默认使用哪个电子邮件客户端。 我不想直接发送电子邮件,因为我希望用户有机会使用他们的首选客户端编写电子邮件正文。 因此,当我右键单击某个文件并select“发送至” – >“邮件收件人”时,我确实希望完成Windows资源pipe理器的工作。 我正在寻找一个C ++解决scheme。