powershell下载文件和解压zip

今天想简单的写个下载文件然后解压缩的

主要是用来更新客户端的脚本文件,因为客户端有很多,一个个更新很麻烦的,而且有些客户端不在使用的,本来可以通过服务器发送更新文件的

刚开始想用bat实现的感觉有点麻烦,想想可以用powershell听说这东西挺强大的,不过我都还没有使用过呢

就简单的写了个脚本

$client = new-object System.Net.WebClient
$source = 'C:\client\app\cl.zip'
$client.DownloadFile('http://192.168.0.200/nwjs/cl.zip', $source)

$TargetFolder = 'C:\client\app\cl\'
if(!(Test-Path $TargetFolder))
{
    mkdir $TargetFolder
}
$shellApp = new-object -ComObject Shell.Application
write-host $shellApp.NameSpace($source)
$files = $shellApp.NameSpace($source).Items()
#下面这句会删除已解压的,但不会影响目录内其它不相干的文件      
$files|%{Remove-Item ("$TargetFolder/{0}" -f  $_.name ) -Force -Recurse}
$shellApp.NameSpace($TargetFolder).CopyHere($files) 

保存成load.ps1

不过这还是不能执行要在powershell设置一下

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

这样设置后就可以运行了

这还是遇到一点点小问题,刚开始地址我写成 $source = 'C:/client/app/cl.zip' 设置目录的时候这样是没什么问题的

不过这样写目录后 $shellApp.NameSpace($source) 这命令执行就是空的

后来我看了网上找的代码写的这样的"\"我改了一下竟然可以了

这地址改成 / 主要是在其它代码里面这样写是不用转码的,看来还是不能偷懒的


标签: 其它(7)
友情链接
轻松育儿世界奇观
苏ICP备16066217号-2