У меня есть командный файл, который выводит текстовый файл. Я подумал, что было бы неплохо, если бы я тоже мог застегнуть молнию.
Это будет использоваться в неконтролируемой среде, поэтому я не могу делать предположения о наличии сторонних программных продуктов, таких как 7-Zip и т. Д. Для этого необходимо использовать встроенную в Windows возможность архивировать файлы.
windows
command-line
batch
zip
Аарон Буш
источник
источник
powershell.exe Compress-Archive file-to-zip.txt zippedfile.zip
(он работает и с папкой)Ответы:
Вот решение для всех пакетных файлов (вариант моего другого ответа), которое заархивирует файл с именем
c:\ue_english.txt
и поместит его вC:\someArchive.zip
:Доступ на запись требуется для родителя папки, хранящейся в
TEMPDIR
. Поскольку это часто не относится к корню диска C,TEMPDIR
возможно, придется изменить.Доступ для записи также требуется для папки, в которой
.bat
находится скрипт (поскольку он генерирует файл там).Также обратите внимание, что расширение файла для сжатого файла должно быть
.zip
. Попытки использовать другое расширение могут привести к ошибке сценария. Вместо этого создайте.zip
файл и переименуйте его.источник
write-zip
командлет, который можно загрузить с Pscx .TEMPDIR
? Я думаю, что вы хотите обернуть файлFILETOZIP
в папку, верно?Это есть возможность пронестись файлами без установки какого - либо дополнительного программного обеспечения (я тестировал). Решение:
Запустите это в окне командной строки, чтобы создать ZIP-файл,
C:\someArchive.zip
содержащий все файлы в папкеC:\test3
:Где файл
zip.vbs
содержит:Я не проверял его на пути и имена файлов, содержащие пробелы. Это может работать, если кавычки помещаются вокруг параметров командной строки.
Как это работает: встроенная функция zip в Windows (Windows XP и более поздние версии?) Предоставляется через COM- интерфейсы из оболочки Windows, explorer.exe - то есть части «Shell.Application». Этот интерфейс COM можно использовать из сценария VBScript, поскольку такой сценарий может обращаться к компонентам COM. Чтобы сделать скрипт полностью автономным, он создает пустой ZIP-файл для начала (можно также создать пустой ZIP-файл и скопировать его в целевую систему вместе со сценарием VBScript).
VBScript был установлен по умолчанию в каждой версии Microsoft Windows для настольных компьютеров, начиная с Windows 98.
CScript.exe
является частью Windows Script Host . Windows Script Host распространяется и устанавливается по умолчанию в Windows 98 и более поздних версиях Windows. Он также устанавливается, если установлен Internet Explorer 5 (или более поздняя версия).источник
Если вы открыты для использования PowerShell , функции zip доступны в .NET 2.0 (PowerShell - это .NET). Вот пример ( источник ) кредита для Майка Ходника :
источник
Вы можете устранить риск тайм-аута во время сжатия, опросив наличие диалогового окна сжатия. Этот метод также обрабатывает отмену пользователем из окна сжатия.
источник
.Sleep(whatever)
" меня тошнит.Если вы сможете установить Resource Kit Tools , вы найдете инструмент командной строки под названием COMPRESS, который может создавать сжатые архивные файлы, такие как zip.
источник
источник
objShell.NameSpace( ZipFile ).Items.Count
внутри цикла, он всегда равен 0, даже если zip-файл создан и в нем есть ожидаемое содержимое ...Несколько файлов / каталогов с упрощенным кодом.
файл zip.vbs
источник
Это мутация принятого ответа. Я выполняю множество задач по автоматизации одновременно с тысячами файлов, поэтому я не могу просто спать 2 секунды и не заботиться об этом. Я подбирала обходной путь здесь , который также похож на ответ Йиржи Kočara в здесь .
Это приведет к тому, что папка назначения будет проверяться каждые 200 мс, что примерно так же быстро, как говорит Microsoft для проверки обновлений FS.
источник
Вот моя попытка обобщить встроенные возможности окон для сжатия и распаковки - https://stackoverflow.com/questions/28043589/how-can-i-compres-zip-and-uncopress-unzip-files-and-folders -с-периодического е
с несколькими данными решениями, которые должны работать практически на каждой машине Windows.
Что касается shell.application и WSH, я предпочел jscript, так как он допускает гибридный пакетный / jscript-файл (с расширением .bat), для которого не требуются временные файлы. Я поместил функции разархивирования и архивирования в один файл, плюс еще несколько функций ,
источник
Если в Windows 8 или Windows Server 2012 у вас есть PowerShell и .NET 4.5, вы можете сделать это:
zip.ps1 (использование :)
-directory <directory to zip up> -name <zip name>
:zip.bat (если вам нужен помощник для вызова PowerShell, каталог является первым аргументом, а имя zip вторым):
источник
Windows 10 build 17063 или новее поставляется в комплекте с tar.exe, который способен работать с zip из командной строки.
или создать архив
источник
Командная строка Windows теперь предоставляет компактную команду, которая, насколько я могу судить, является родной для Windows. Это должно соответствовать требованиям, если я что-то пропустил.
источник
compact
существует с XP и является инструментом для управления сжатием NTFS