在Windows XP,7和10上从批处理文件下载并解压缩?

时间:2019-02-14 09:09:55

标签: powershell batch-file cmd

我必须从Windows 10、7和XP上的批处理文件下载文件并解压缩。

我从Windows 10以外的计算机上收到错误消息:

  

Expand-Archive:术语“ Expand-Archive”不被视为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请确认路径正确,然后重试。

是否有任何选项/通用命令会下载一个zip文件并为所有操作系统解压缩?

下面是已经编写并在Windows 10中运行的代码:

    private void Graph_Load(object sender, EventArgs e)
    {
        {
            System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();

            label1.Text = DateTime.Now.ToString("HH:mm:ss");

            timer1.Interval = 60000;//1 minutes
            timer1.Tick += new System.EventHandler(Timer1_Tick);
            timer1.Start();
        }
    }

    private void Timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = DateTime.Now.ToString("HH:mm:ss");
        Refresh(); // OR Invalidate(); OR Update();
    }     

1 个答案:

答案 0 :(得分:3)

如果您具有足够的权限,则可以直接使用System.net.WebClient下载任何文件。

$WebClient_Obj = New-Object System.Net.WebClient
$source = "http://url/yourFile.zip"
$destination = "C:\MyCustomFolder\YourFile.zip"
$WebClient_Obj.DownloadFile($url,$file)

然后您可以使用COM对象shell.application将其直接在Powershell中解压缩:

$shell_ComObject = New-Object -ComObject shell.application 
$zip_file = $shell_ComObject.namespace($yourfile) #in your case, it is $destination 
$folder = $shell_ComObject.namespace("C:\MyCustomFolder") 
$folder.Copyhere($zip_file.items())

希望有帮助。