如何在 Windows 中使用 python 打开 javascript,用 WScript 解释它,并向其传递命令行参数

发布于 2024-09-28 10:56:00 字数 347 浏览 5 评论 0原文

我有一种保存文件路径和命令行参数的格式,以便在 Windows 中打开这些文件时传递给这些文件。

例如,我可能有一个 javascript 文件的路径和一个传递它的命令行参数列表,在这种情况下,我想以与 os.startfile 相同的方式打开 javascript 文件并将命令行参数传递给它- 由于参数保存为字符串,我想将其作为字符串传递,但如果需要,我也可以将其作为列表传递。

我不太确定我应该为此使用什么,因为 .js 不是可执行文件,因此会在 Popen 中引发错误,而 startfile 仅将动词作为其第二个命令。

这个问题可以扩展到需要打开任意数量的文件扩展名,并传递命令行参数,但在打开时将由真正的可执行文件解释。

I have a format holding paths to files and command line arguments to pass to those files when they are opened in Windows.

For example I might have a path to a javascript file and a list of command line arguments to pass it, in such a case I want to open the javascript file in the same way you might with os.startfile and pass it the command line arguments - since the arguments are saved as a string I would like to pass it as a string but I can also pass it as a list if need be.

I am not quite sure what I should be using for this since a .js is not an executable, and thus will raise errors in Popen while startfile only takes verbs as its second command.

This problem can be extended to an arbitrary number of file extensions that need to be opened, and passed command line arguments, but will be interpreted by a true executable when opening.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初心 2024-10-05 10:56:00

如果 Windows 已注册 .js 扩展名以使用 wscript 打开,您可以通过将决定留给 Windows shell 来完成此操作。

您可以使用 os.system() 来做同样的事情您可以在命令提示符下键入它,例如:

import os
os.system('example.js arg1 arg2')

您还可以使用 start 命令:

os.system('start example.js arg1 arg2') 

如果您需要更多功能,例如为了获取结果,您可以使用 subprocess.Popen(),但请确保使用 shell=True (以便shell 可以调用正确的应用程序):(

from subprocess import Popen
p = Popen('example.js arg1 arg2', shell=True)
# you can also do pass the filename and arguments separately:
# p = Popen(['example.js', 'arg1', 'arg2'], shell=True)
stdoutdata, stderrdata = p.communicate()

尽管这可能需要 cscript 而不是 wscript)

如果 Windows 没有任何默认应用程序来打开文件(或者它不是您想要的应用程序),那么您就可以当然是你自己...

If windows has registered the .js extension to open with wscript, you can do this, by leaving that decision up to the windows shell.

You can just use os.system() to do the same thing as you would do when you type it at the command prompt, for example:

import os
os.system('example.js arg1 arg2')

You can also use the start command:

os.system('start example.js arg1 arg2') 

If you need more power, for example to get results, you can use subprocess.Popen(), but make sure to use shell=True (so that the shell can call the right application):

from subprocess import Popen
p = Popen('example.js arg1 arg2', shell=True)
# you can also do pass the filename and arguments separately:
# p = Popen(['example.js', 'arg1', 'arg2'], shell=True)
stdoutdata, stderrdata = p.communicate()

(Although this would probably require cscript instead of wscript)

If Windows doesn't have any default application to open the file with (or if it's not the one you want), well, you're on your own of course...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文