Я пытаюсь извлечь около 40 папок, каждая из которых содержит rar, но я никогда не делал в ней powershell. В bash вы можете использовать */*.rar
чтобы извлечь их с помощью подстановочного знака, но как мне это сделать в PowerShell? Я пробовал кое-что вместе
C:\Program Files (x86)\Unrar\UnRAR.exe' x .\*\*.rar
Но это ошибки:
UNRAR 4.10 freeware Copyright (c) 1993-2012 Alexander Roshal
Cannot read contents of .\*\*.rar
The filename, directory name, or volume label syntax is incorrect.
Я использую это:
$parent = 'c:\myrar_files'
$files = @()
Get-ChildItem $parent -Recurse -Filter "*.rar" | % {
# Recurse through all subfolders looking for .rar files only.
$files = $files + $_.FullName
}
foreach ($f in $files) {
# UnRAR the files. -y responds Yes to any queries UnRAR may have.
C:\scripts\WinRAR\unrar x -y $f
}
Сначала проверьте это, потому что мне не на чем проверять:
get-childitem -recurse -filter *.rar | %{"C:\Program Files (x86)\Unrar\UnRAR.exe" x $_.fullpath}
Я не на 100% уверен, что x приведет к его извлечению в текущий каталог или в каталог файла rar, поэтому вам, возможно, придется добавить компакт-диск к командам.
get-childitem -recurse -filter *.rar | %{cd $_.directory; "C:\Program Files (x86)\Unrar\UnRAR.exe" x $_.name}