远程荏苒使用PowerShell启动进程和调用命令文件
-
27-10-2019 - |
题
我希望能够以远程到系统和zip或解压缩文件存在,并有处理信号它何时完成。开始处理工作与-wait参数从PowerShell的同步运行7z.exe。当我尝试结合起来,与调用命令来远程运行相同的命令,它不接受等待参数,我相信这是杀害的过程,因为它很快返回,从来没有产生一个zip文件。
[string]$sevenZip = "C:\Program Files\7-zip\7z.exe"
[Array]$arguments = "a", $zipFilename, $dirToZip;
"Starting $sevenZip with $arguments"
Start-Process $sevenZip "$arguments" -Wait
#blocks and waits for zip file to complete
我最初试图在PSCX写拉链&扩大归档,但后者是不与64位的.NET 4.0配置兼容。所以,现在我想通过命令行来调用64位7z.exe。我没有收到任何错误。 PowerShell的报告作业作为运行状态,然后完整的,并且没有zip文件被产生。
Invoke-Command -ComputerName localhost -FilePath 'C:\Scripts\ZipIt.ps1' -ArgumentList 'd:\TestFolder','d:\promote\TestFile.7z' -AsJob
欣赏任何帮助或指针。
谢谢, 格雷戈里
解决方案
由于启动过程将被同步地在此使用,我建议避免它,只是使用7z.exe
可执行:
$sevenZip = "C:\Program Files\7-zip\7z.exe"
&$sevenZip a $zipFileName $dirToZip
这样做,直到7zip的完成了工作,自然会阻止你的脚本。
其他提示
使用7z.exe直接将达到目的。如果你发现你需要为解压受密码保护的文件,你可以使用:
$sevenZip = "C:\Program Files\7-zip\7z.exe"
&$sevenZip e -y "-o$dirToUnZip" -psomepassword $dirToUnZip\$zipFileName
不隶属于 StackOverflow