相关疑难解决方法(0)

Windows不会将命令行参数传递给从shell执行的Python程序

如果我尝试直接将它们作为可执行命令从Windows命令shell执行,那么我无法将命令行参数传递给Python程序.例如,如果我有这个程序(test.py):

import sys
print "Args: %r" % sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)

并执行:

>test foo
Args: []
Run Code Online (Sandbox Code Playgroud)

相比于:

>python test.py foo
Args: ['foo']
Run Code Online (Sandbox Code Playgroud)

我的配置有:

PATH=...;C:\python25;...
PATHEXT=...;.PY;....

>assoc .py
.py=Python.File

>ftype | grep Python
Python.CompiledFile="C:\Python25\python.exe" "%1" %*
Python.File="C:\Python25\python.exe" "%1" %*
Python.NoConFile="C:\Python25\pythonw.exe" "%1" %*
Run Code Online (Sandbox Code Playgroud)

python windows registry file-association command-line-arguments

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

如何通过Vista 64中的文件关联传递命令行参数?

如何在Vista 64中通过文件关联传递命令行参数?

我最近建立了一台运行Vista Ultimate 64位的PC.我注意到由于没有传递命令行参数,我传输的几个Perl脚本失败了.作为一个简单的测试,我写了以下(foo.pl):

#!/usr/bin/perl -w
use strict;
my $num_args = $#ARGV + 1;
print "${num_args} arguments read\n";
print "$^X\n" # to see what was being used
Run Code Online (Sandbox Code Playgroud)

运行"foo.pl 1 2 3"会产生不良影响:

0 arguments read
C:\strawberry\perl\bin\perl.exe
Run Code Online (Sandbox Code Playgroud)

运行"perl foo.pl 1 2 3"预计会产生:

3 arguments read
C:\strawberry\perl\bin\perl.exe
Run Code Online (Sandbox Code Playgroud)

在我的旧Windows XP PC上,两个调用都返回了3个参数.我在这里记录了更多我的侦探(win32.perl.org wiki talk),但我还没有找到一个有效的解决方案.

我也试过ActivePerl-5.10.0.1004-MSWin32-x64-287188.msi无济于事.

任何帮助,将不胜感激.这让我很沮丧.

perl 64-bit argument-passing windows-vista

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