标签: shellexecute

如何从Python执行程序?由于路径中的空格,os.system失败

我有一个需要执行外部程序的Python脚本,但由于某种原因失败了.

如果我有以下脚本:

import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Run Code Online (Sandbox Code Playgroud)

然后它失败并出现以下错误:

'C:\ Temp\a'不被识别为内部或外部命令,可操作程序或批处理文件.

如果我用引号来逃避程序:

import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Run Code Online (Sandbox Code Playgroud)

然后它工作.但是,如果我添加一个参数,它会再次停止工作:

import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Run Code Online (Sandbox Code Playgroud)

执行程序并等待程序完成的正确方法是什么?我不需要从中读取输出,因为它是一个可视化程序,可以完成工作然后退出,但我需要等待它完成.

另请注意,将程序移动到非间隔路径也不是一种选择.


这也不起作用:

import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Run Code Online (Sandbox Code Playgroud)

注意交换的单/双引号.

在此处有或没有记事本参数,它会失败并显示错误消息

文件名,目录名或卷标语法不正确.

python shellexecute

264
推荐指数
7
解决办法
61万
查看次数

在Windows批处理文件夹中打开网页

我有一个批处理文件可以做很多事情,最后需要打开一个Web浏览器到页面.有没有一种办法,在本质上,呼吁ShellExecuteHTTP打开网页?

Windows命令提示符

windows cmd batch-file shellexecute

101
推荐指数
2
解决办法
23万
查看次数

如何传递Ant脚本的参数,这是通过shell脚本调用的?

我需要通过shell脚本调用ant脚本.让我们考虑一下ant脚本的参数是a,b,c.我怎样才能传递这些变量的参数?我必须提供ant vis的参数来调用shell脚本.谁可以帮我这个事?

ant shell scripting shellexecute

52
推荐指数
1
解决办法
5万
查看次数

Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd

我能知道什么是各自之间的差异Exec,ExecWait,ExecShell,nsExec::Exec,nsExec::ExecToLog, nsExec::ExecToStack,ExecDosExecCmd,如在什么时候使用?

我已经发布了我知道的各种执行调用.我正在努力制作一份全面的清单,以便它可以帮助未来的访客.

  1. Exec:明确地执行被调用的字符串,无论是应用程序,控制台还是文件.

  2. ExecWait:执行类似Exec但等待进程退出.

  3. ExecShell:它是为了什么?

  4. nsExec::Exec:就像ExecExecWait仅仅用于命令提示符,而且无需打开控制台窗口.我不确定它是否等待进程退出.是否nsExec::Exec等待子进程退出?

  5. nsExec::ExecToLog:The documentation says ExecToLog类似于plain nsExec但它输出到日志窗口.这是什么意思,什么是日志窗口?

  6. nsExec::ExecToStack:文档说明ExecToStack类似于plain,nsExec但它将输出推送到堆栈.我明白了.

  7. ExecDos:与nsExec::ExecToStack它相同(不是吗?)

    一个.获取用作运行应用程序的stdin的字符串参数.

    湾 在同步/异步模式下工作.

    C.它的部分工作 - 用于.onInit检查.

  8. ExecCmd:相同ExecDos但不需要这些

    ExpandEnvStrings $3 %COMSPEC% 
    ExecDos::exec  /C 
    
    Run Code Online (Sandbox Code Playgroud)

    部分.我对么?

nsis shellexecute

48
推荐指数
1
解决办法
3万
查看次数

ShellExecute等效于.NET

我正在寻找.NET首选的方式来执行ShellExecute在Win32中所做的相同类型的事情(打开,打印等任意文件类型).

我已经编程Windows超过20年了,但我是.NET的新手,所以也许我只是在寻找错误的地方.我目前正在使用.NET 2.0(VS C#2005),但如果需要可以使用VS 2008.

如果唯一的答案是使用P/Invoke,那么我最好还是使用Win32编写我的小实用程序.

.net c# winapi shellexecute windows-shell

47
推荐指数
2
解决办法
7万
查看次数

如何从需要SUDO的php调用shell脚本?

我有一个文件是一个bash脚本,需要SUDO才能工作.

我可以使用SUDO从命令行运行它但我会被提示输入SUDO密码.

我想从php运行这个脚本,shell_exec但如果我调用SUDO,它不像命令行,我可以提示输入密码.有没有办法通过sudo调用传递sudo的密码?

我怎样才能做到这一点?

php bash sudo shellexecute

45
推荐指数
3
解决办法
5万
查看次数

在Go中执行shell命令

我想在Go中执行shell命令,并在程序中将结果输出作为字符串.我看到了Rosetta Code版本:

package main
import "fmt"
import "exec"

func main() {
  cmd, err := exec.Run("/bin/ls", []string{"/bin/ls"}, []string{}, "", exec.DevNull, exec.PassThrough, exec.PassThrough)
  if (err != nil) {
    fmt.Println(err)
    return
  }
  cmd.Close()
Run Code Online (Sandbox Code Playgroud)

但这并没有以我可以以编程方式访问的方式捕获实际标准或错误 - 那些仍然打印到常规stdout/stderr.我看到使用Pipe作为out或err可以帮助其他地方,但没有如何这样做的例子.有任何想法吗?

shellexecute go

38
推荐指数
4
解决办法
4万
查看次数

使用单行shell命令替换所有文件中的特定文本

我有一个重命名的js文件,我必须在我的每个PHP页面调用.现在我想使用shell替换旧名称.我用的是这个: -

sed -i ’s/old/new/g’ *
Run Code Online (Sandbox Code Playgroud)

但这会产生以下错误: -

sed: -e expression #1, char 1: unknown command:
Run Code Online (Sandbox Code Playgroud)

现在我该如何替换?

shell sed shellexecute

34
推荐指数
5
解决办法
4万
查看次数

从shell/dos应用程序获取输出到Delphi应用程序

我有一个在delphi中编码的命令行应用程序,我需要从普通的桌面应用程序(也用delphi编写)调用.简而言之,我想调用命令行应用程序并在列表框中显示它"实时"输出的文本.

自从我使用shell以来已经很久了,但我清楚地记得,为了从命令行应用程序中获取文本 - 我必须使用管道符号">".像这样:

C:/mycmdapp.exe> c:/result.txt

这将打印到shell的任何文本(使用writeLn)并将其转储到名为"result.txt"的文本文件中.

但是......(这里有泡菜),我想要一个实时结果而不是一个积压文件.一个典型的例子是Delphi编译器本身 - 它设法向IDE报告发生了什么.如果我的记忆正确地为我服务,我似乎记得我必须创建一个"管道"通道(?),然后将管道名称分配给shell调用.

我试图谷歌这个但我老实说不确定如何制定它.希望社区中的某些人能指出我正确的方向.

更新:此问题可能与如何在Delphi中运行命令行程序相同.虽然标题和问题本身并不相同,但有些答案符合我的要求.

delphi pipe shellexecute windows-shell

34
推荐指数
2
解决办法
4万
查看次数

Lua os.execute返回值

是否可以从Lua中的局部变量中读取以下内容?

local t = os.execute("echo 'test'")
print(t)
Run Code Online (Sandbox Code Playgroud)

我只是想实现这一点:无论通过什么执行ox.execute并将返回任何值,我想在Lua中使用它 - 例如echo 'test'test在bash命令行中输出- 是否可以获得返回值(test在这种情况下)到Lua局部变量?

lua shellexecute

34
推荐指数
1
解决办法
7万
查看次数

标签 统计

shellexecute ×10

shell ×2

windows-shell ×2

.net ×1

ant ×1

bash ×1

batch-file ×1

c# ×1

cmd ×1

delphi ×1

go ×1

lua ×1

nsis ×1

php ×1

pipe ×1

python ×1

scripting ×1

sed ×1

sudo ×1

winapi ×1

windows ×1