2009-11-05 10 views
2

Comment puis-je rediriger l'entrée pour commande suivante zip 1.zip file.txt je veux que les noms soient zipée être prises à partir du fichier file.txtComment rediriger l'entrée dans cmd

J'ai essayé de le faire zip 1. zip < file.txt et ça n'a pas fonctionné, je travaille sous windows.

grâce

Répondre

4

utilisez l'option - @ dans zip.

de type zip - @ 1.zip < file.txt

de l'aide zip trouvé par zip en tapant -h

Copyright (C) 1990-1996 Mark Adler, Richard B. Wales, Jean-loup Gailly 
Onno van der Linden and Kai Uwe Rommel. Type 'zip -L' for the software License. 
Zip 2.1 (April 27th 1996). Usage: 
zip [-options] [-b path] [-t mmddyy] [-n suffixes] [zipfile list] [-xi list] 
    The default action is to add or replace zipfile entries from list, which 
    can include the special name - to compress standard input. 
    If zipfile and list are omitted, zip compresses stdin to stdout. 
    -f freshen: only changed files -u update: only changed or new files 
    -d delete entries in zipfile -m move into zipfile (delete files) 
    -k force MSDOS (8+3) file names -g allow growing existing zipfile 
    -r recurse into directories  -j junk (don't record) directory names 
    -0 store only     -l convert LF to CR LF (-ll CR LF to LF) 
    -1 compress faster    -9 compress better 
    -q quiet operation    -v verbose operation/print version info 
    -c add one-line comments  -z add zipfile comment 
    -b use "path" for temp file  -t only do files after "mmddyy" 
    [email protected] read names from stdin  -o make zipfile as old as latest entry 
    -x exclude the following names -i include only the following names 
    -F fix zipfile (-FF try harder) -D do not add directory entries 
    -A adjust self-extracting exe -J junk zip file prefix (unzipsfx) 
    -T test zipfile integrity  -X eXclude eXtra file attributes 
    -$ include volume label   -S include system and hidden files 
    -h show this help    -n don't compress these suffixes 
0

Vous pouvez utiliser une commande FOR pour prendre l'entrée du file.txt et exécuter une commande pour chaque ligne dans le fichier. Ce n'est pas exactement ce que vous voulez, mais cela vous rapproche.

Par exemple,

for /f %L in (file.txt) do echo %L 

se fera l'écho de chaque ligne dans le fichier, séparément.

Vous pouvez utiliser cela pour construire une ligne de commande qui fera ce que vous voulez. comme ceci:

SETLOCAL ENABLEDELAYEDEXPANSION 

set filelist= 
for /F %%L IN (data.txt) do set filelist=!filelist! %%L 

zip.exe zipfile.zip %filelist% 

ENDLOCAL