Próbuję emulować Windows Send to/Compressed (zipped) folder
funkcja za pomocą narzędzia Microsoft compress.exe
, dołączony jako część zestawu Windows Server 2003 Resource Kit.
W przypadku tego narzędzia może nie być to możliwe, ale mam problem z tym, żeby coś wyprodukowało. Próbowałem tego scenariusza:
md test
cd test
md folder
echo this is file 1 >folder\file1.txt
echo this is file 2 >folder\file2.txt
md output
compress folder\*.* output -z
Microsoft (R) File Compression Utility Version
Copyright (C) Microsoft Corp. 1990-1999. All rights reserved.
Compressing folder\file1.txt to output\folder\file1.txt using MS-ZIP compression.
Compressing folder\file2.txt to output\folder\file2.txt using MS-ZIP compression.
dir /s
Volume in drive C is TI80140500H
Volume Serial Number is AC18-E911
Directory of C:\test
12/05/2015 01:22 a.m. <DIR> .
12/05/2015 01:22 a.m. <DIR> ..
12/05/2015 01:34 a.m. <DIR> folder
12/05/2015 01:22 a.m. <DIR> output
0 File(s) 0 bytes
Directory of C:\test\folder
12/05/2015 01:34 a.m. <DIR> .
12/05/2015 01:34 a.m. <DIR> ..
12/05/2015 01:35 a.m. 15 file1.txt
12/05/2015 01:36 a.m. 17 file2.txt
2 File(s) 32 bytes
Directory of C:\test\output
12/05/2015 01:22 a.m. <DIR> .
12/05/2015 01:22 a.m. <DIR> ..
0 File(s) 0 bytes
Total Files Listed:
2 File(s) 32 bytes
8 Dir(s) 558,695,092,224 bytes free
Nie widzę żadnych plików wytworzonych przez tę pozornie udaną sekwencję. Jak się namówić compress
stworzyć spakowany folder - czy cokolwiek?
** AKTUALIZACJA **
Oto pomoc dla narzędzia:
Syntax:
COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]
Description:
Compresses one or more files.
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be
used.
Destination Destination file | path specification.
Destination may be a directory. If Source is
multiple files and -r is not specified,
Destination must be a directory.
Examples:
COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
Pierwszy z trzech przykładów wygląda tak, jakby pobierał plik i tworzy skompresowaną wersję tego pliku. Które to robi.
Drugi robi to, czego można oczekiwać, produkując tempt.tx_
.
Trzeci COMPRESS -R *.exe *.dll compressed_dir
faktycznie coś robi, kłamiąc z moich wcześniejszych twierdzeń. Tworzy plik katalog_kompresowany_, który chyba zawiera pliki. COMPRESS -R *.txt *.vbs folder compressed_dir
z drugiej strony ignoruje folder AFAICT. COMPRESS -R folder compressed_dir
daje błąd "ERROR: The compressed_dir file is not found."
.
Moim wnioskiem jest to, że nie może on kompresować folderów i nie może tworzyć plików ZIP / skompresowanych folderów.
Cokolwiek, zrezygnowałem i użyłem 7Zip, który działa jak uczta.
źródło
Odpowiedzi:
Nie wierzę w to, do czego jest przeznaczone narzędzie. Jego artykuł w TechNet mówi możesz dekompresować takie pliki tylko za pomocą
Expand.exe
. Ponadto ostrzega, aby nie używaćCompress.exe
na systemie plików NTFS i instruuje używanieCompact.exe
zamiast.Jeśli użyjesz Compact, zobaczysz, że umożliwia kompresję na poziomie systemu plików. Nie jestem pewien, które narzędzie jest powiązane z Wyślij do → Folder skompresowany (zip) , ale te nie wydają się nimi być.
źródło
compress -z -r file1.txt
produkujefile1.tx_
.expand file1.tx_ file2.txt
produkujefile2.txt
który jest identyczny z oryginałem. Jest dla mnie całkiem jasne, jak ma działać - po prostu nie mogę tego zrobić do całych folderów, jak sugeruje to dokumentacja.