Я хочу извлечь все файлы * .Z в их текущие каталоги (7-Zip поддерживает сжатие LZW / UNIX).
Я не могу понять, почему это не работает. Я знаю, как использовать PowerShell для рекурсивного получения полного пути к имени файла и каталогу, в котором находится файл. Я также знаю, как использовать 7-zip для извлечения файла на место. Но попытаться соединить эти два вместе не работает. Вот что у меня есть:
Get-ChildItem -Recurse *.Z | foreach ($_) {7z.exe e $_.FullName -o$_.Directory}
Я также пробовал:
Get-ChildItem -Recurse *.Z | foreach ($_) {7z.exe e $_.FullName -o$($_.Directory)}
и
Get-ChildItem -Recurse *.Z | foreach ($_) {7z.exe e $_.FullName -o${_.Directory}}
Я получаю файлы к FullName
, а Directory
- правильный путь (без пробела между буквой o и directory - это то, как 7-zip ожидает выходной каталог). Однако он продолжает попытки вывести файл по пути .Z, а не в каталог. Я знаю, что это правильно, если я это сделаю
Get-ChildItem -Recurse *.Z | Select Directory
вот куда я хочу его пойти.
Я предполагаю, что проблема заключалась в отсутствии места, но не знаю, почему он получил тот же каталог. Я даже вручную определил переменную и передал ее без проблем.
Таким образом, проблема в том, что 7-zip сообщает, что файлы для обработки отсутствуют, когда я хочу вывести в тот же каталог, но не знаю, почему, и кажется, что переменная Directory
не передается, а снова имя файла, что не имеет смысла. Пример вывода для каждого файла:
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
Scanning the drive for archives:
1 file, 226 bytes (1 KiB)
Extracting archive: E:\Files\2014\more_cowbell\myfancyunixcompresseddocument.txt.Z
--
Path = E:\Files\2014\more_cowbell\myfancyunixcompresseddocument.txt.Z
Type = Z
No files to process
Everything is Ok
Files: 0
Size: 0
Compressed: 226
Он отлично работает, если я укажу один конкретный выходной каталог (без переменной), но я хочу, чтобы они были извлечены на месте из-за множества подкаталогов и конфликтующих имен файлов между ними.
Я хочу извлечь все файлы * .Z в их текущие каталоги (7-Zip поддерживает сжатие LZW / UNIX).