C ++使用Powershell命令提取Zip文件

时间:2018-03-09 19:45:52

标签: c++ windows powershell cmd command

我试图将zip文件解压缩到我的C ++程序中的文件夹中。我不想使用任何外部库或依赖项。

为此,我从我的C ++程序发出CMD命令来执行powershell。所以,我执行一个系统命令,它激活了poweshell,它提取了zip文件。

这是我的代码:

string extractCommand = "powershell.exe -nologo -noprofile -command \"& { Add - Type - A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('\"C:/Users/Eyesight Technology/Desktop/data/somsearch.zip/\"', '\"C:/Users/Eyesight Technology/Desktop\"'); }\"";
        system(extractCommand.c_str());

我认为问题可能在于使用引号和转义符,但我不确定。我试过直接从命令行运行命令(显然没有转义键),它就像一个魅力!但是在带有转义键的C ++中,我从powershell中得到了错误。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在PowerShell 5中,使用Expand-Archive

Expand-Archive -Path 'C:/Users/Eyesight Technology/Desktop/data/somsearch.zip' `
    -DestinationPath 'C:/Users/Eyesight Technology/Desktop'