5

PowerShell で zip アーカイブを開いて、その中のファイルを特定の場所に移動しようとしました。ただし、常にzipフォルダーのみを移動します。私は何を間違っていますか?

これは私が今持っているものです:

Get-ChildItem C:\zipplayground\*.zip | % {"C:\Program Files (x86)\7-Zip\7zG.exe";
Move-Item $_ C:\unzipplayground\}
4

4 に答える 4

11

正しい答えは次のようなものであるべきだと思います:

Get-ChildItem C:\zipplayground\*.zip | % {& "C:\Program Files\7-Zip\7z.exe" "x" $_.fullname "-oC:\unzipplayground"}

Alroc はほぼ正しかったのですが$_.fullname、引用符の間が機能せず、-o7z のパラメーターが欠落していました。7z.exeの代わりに使用していますが7zg.exe、この方法で正常に動作します。

参考までに、コマンド ラインのヘルプは次の場所にあります。http://sevenzip.sourceforge.jp/chm/cmdline/ 基本的には「eXtract」と「出力ディレクトリ」のx略です。-o

于 2013-08-02T11:59:28.560 に答える
0

7zip のようなオープン ソースの exe/dll を避けたい場合は、powershell 用の PSCX モジュールをインストールし、expand-archive を使用します。PSCX の要件は、少なくとも .net 4 (私は 4.5 を使用) および powershell 3.0 であることに注意してください。

http://pscx.codeplex.com/

于 2013-08-02T11:48:18.483 に答える
0

テストする7Zipはありませんが、7Zipに何を操作するかを指示しておらず、ZIPファイルを自分で宛先に移動しているため、失敗していると思います。これを試して:

Get-ChildItem C:\zipplayground\*.zip | % {invoke-expression "C:\Program Files (x86)\7-Zip\7zG.exe x $_.FullName c:\unzipplayground\";}
于 2013-08-02T11:20:24.900 に答える