当我尝试从我下载的安装程序可执行文件中安装 7zip 时,我一直"Access Denied"



如果 7-Zip 尚未使用 Perl 脚本安装在我的 Win7 系统中,我正在尝试安装 7-Zip。

# Check if 7-Zip is installed or Not.
if (!(-e "C:\Program Files\7-Zip")){
    print "n 7-Zip is not installed. Downloading ... n"
    system("wget http://downloads.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920.exe?r=&ts=1392082197&use_mirror=softlayer-dal");
    print "n Installing.. n";
    system("7z920.exe /S /D="C:Program Files7-Zip"");
}

它正在将我需要的文件 (7z920.exe) 下载到 PWD,但它没有安装。我不断收到命令行错误"访问被拒绝"。即使我在命令行上以管理员模式运行脚本。

实际上,如果我只是在命令行上将系统路径为7z920.exe并尝试调用.EXE,则会出现相同的拒绝错误。它不会安装。但是如果我从文件夹中单击它,它允许我安装它?!为什么我可以双击并从文件夹安装,但不能从命令行从同一路径调用可执行文件而不安装它?

C:>7z920.exe /S /D="C:Program Files7-Zip"
Access is denied.

你可以帮我吗?如何使用我的脚本安装它?还是从批处理文件?

当我运行该wget命令时,我得到一个名为 7z920.exe@r=&ts=1392082197&use_mirror=softlayer-dal 的文件。所以我会推荐

  1. 使用 wget-O选项强制下载的文件具有所需的文件名。

    wget -O 7z920.exe http://downloads.sourceforge.net/project/...
    
  2. 我不知道你的PATH里有什么,所以在你的命令前面加上当前路径。

    system(".\7z920.exe /S /D=...");
    
  3. 小心如何在双引号内转义 Perl 中的特殊字符。尝试以下方法之一:

    system(".\7z920.exe /S /D="C:\Program Files\7-Zip"");
    system('.7z920.exe /S /D="C:Program Files7-Zip"');
    

相关内容

最新更新