【发布时间】:2019-11-27 17:48:39
【问题描述】:
我有一个 oneliner(Windows 7/10 上的 perl 5):
C:\Windows>perl -e "$x=system('echo c:\users');print $x";
这给了我预期的输出:
c:\users
0
但如果我有这个:
C:\Windows>perl -e "$x=system('explorer c:\users');print $x";
这给了我:
256
并打开文件夹。
我很好奇为什么输出不是0,因为命令执行正确。
类似的问题是here,但没有得到回答。这个问题在这里更具体。也许有人可以回答这个具体问题。
更新 1:
(1) 我更正了从 c:\user 到 c:\users 的路径。以前的路径错误,文件资源管理器 C:\Users\giordano\Documents 已打开。通过此更正,正确的文件夹是 openend,但仍返回 256。
(2) 更好的编码:
C:\Windows>perl -e "system('explorer c:\users');print $?";
【问题讨论】:
-
这个
perl -e "system('explorer c:\user'); print $?";给出了相同的结果:256。文件夹将被打开。
标签: perl system return-value