从业几年,发现好多编程人员,严重依赖UI工具。对一些命令操作,十分的反感。尤其是从事Windows系统中的程序开发的人员。由于微软对开发工具,编程套件的极限优化。开发出更多的

面向UI的开发工具。从VB6.0 到VC6.0的经典MFC编程。越来越多的Windows开发人员,包括后来的从业者,越发的不能理解那种古老的在命令行下进行代码编程的方式和思维。

从.Net诞生后,微软开发的新一代IDE工具,Visual Studio,越来越华丽,功能越来越强大。所有的操作都是面向UI。不需要进行命令的控制即可实现傻瓜式的编程,大大的简化了开发人员的开发难度,

提高了工作的效率。但是,UI工具还是有一定的局限性。UI工具,必须进行特定的事件去触发,比如点击 Debug 按钮或者 编译打包按钮等等。或者是设定开发环境参数等等。如果IDE不提供SDK接口,那么

只能手工触发实现特定的操作。但是命令的方式就不一样了。命令可以直接绕过IDE工具,进行控制特定的操作。比如:批量执行多个任务,编译完毕后,需要进行打包等等。

好在VS提供了 基于事件的方式,为我们提供了命令的入口。我们可以把一些机械式的操作,通过特定的命令进行实现。

典型例子:1 MSbuild 命令

微软IDE其实就是讲这些工程,以XML的形式封装在每个工程文件中。在运行 编译 调试等操作的时候,将xml转化为特定的msbuild命令。具体百度下吧,呵呵。

2 编译后 运行第三方工具,进行打包

在以前,我们开发过的Silverlight项目。我们需要在生成 xap包后,(其实就是标准的zip包),用开源的 提供Windows下的命令工具的7zip工具,进行解包,并封入自己的一些dll或者资源文件等。

我们就直接通过命令,进行操作,而不是手工进行每次的打包。

...........

从业几年以来,我再次接触了Linux。为啥是再次呢?因为大学 的时候,老师第一堂课就是在黑乎乎的的命令下讲解  打开根目录,我感觉是装B呵呵,就荒废了。几年后的今天,我越发的感觉。

Linux下的 Shell工具真心的强大!

Windows开发人员,你真的需要放弃固有的思维,体验下Linux的操作!!!

从cd 命令, 从ls ,命令 ,从 rm 命令, 从mv 命令 ,从vi 命令熟悉这几个基本的命令后,你会发现,真的不错。(尤其是你敲了Tab键后,更加精细.........自动补全或者候补命令)

再然后呢  zip  gzip tar pwd 命令。好了恭喜,你已经认识了Linux了。哈哈。我自己整理的一份Linux的手册。希望对你们有帮助。

手册:《Linux 命令手册(特洛伊版2.0)》

链接: https://pan.baidu.com/s/1skrVSvV 密码: tmf2

-----------------------------------------------割了-----------------------------------------------------------------

下面是转载的关于7z工具在Windows下的命令行的整理,来自:http://www.cnblogs.com/qanholas/archive/2011/10/03/2198487.html

7z.exe在CMD窗口的使用说明如下:

7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06

Usage: 7za <command> [<switches>...] <archive_name> [<file_names>...] [<@listfiles...>]

<Commands> a: Add files to archive b: Benchmark d: Delete files from archive e: Extract files from archive (without using directory names) l: List contents of archive t: Test integrity of archive u: Update files to archive x: eXtract files with full paths <Switches> -ai[r[-|0]]{@listfile|!wildcard}: Include archives -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives -bd: Disable percentage indicator -i[r[-|0]]{@listfile|!wildcard}: Include filenames -m{Parameters}: set compression Method -o{Directory}: set Output directory -p{Password}: set Password -r[-|0]: Recurse subdirectories -scs{UTF-8 | WIN | DOS}: set charset for list files -sfx[{name}]: Create SFX archive -si[{name}]: read data from stdin -slt: show technical information for l (List) command -so: write data to stdout -ssc[-]: set sensitive case mode -ssw: compress shared files -t{Type}: Set type of archive -v{Size}[b|k|m|g]: Create volumes -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options -w[{path}]: assign Work directory. Empty path means a temporary directory -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames -y: assume Yes on all queries

中文使用说明如下:

语法 2 U: }* K- X4 U# @   p% Q2 E/ x7z <命令行> [<选项>...] <基本档案名称> [<参数变量>...] # N, x! L1 @8 c# f# A( {- H: c1 k7z <command> [<switch>...] <base_archive_name> [<arguments>...]* g8 T1 {- l2 e) P% T' V; A <参数变量> ::= <选项> | <通配符> | <文件名> | <文件列表> 0 \4 K+ d( V+ \9 b7 n9 Z! n7 m<选项>::= <选项标记><选项字符>[<选项>] 3 Y3 P   u3 ]7 z<选项标记> ::= '/' | '-' 2 T9 p3 F+ k2 m+ i<文件列表> ::= @{文件名}( @4 _; F   r6 j. t+ a5 @
( h) M. w' f: W: B" n<arguments> ::= <switch> | <wildcard> | <filename> | <list_file> ) E" E* I9 a3 L' \' H5 U<switch>::= <switch_symbol><switch_characters>[<option>] 5 ]# @$ ^+ h% E( h8 B& o<switch_symbol> ::= '/' | '-' 7 ?7 T" n   v. b; ^( z<list_file> ::= @{filename} 8 i/ v   Z4 S3 {# ?在方括号内的表达式(“[” 和 “]”之间的字符)是可选的。' ?2 k0 k/ m* f. Q$ c4 h 在书名号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(而且要去掉括号)。 , F8 d* c0 \# u5 l0 p表达式 5 S; l2 |, I1 v/ Texpression1 | expression2 | ... | expressionN* R- s: |- P/ n& m9 C 命令行 及 选项 使用大写或小写字母都可以。 $ C+ b   `' R6 r/ O6 ~0 l. q! P# A- W首个命令行必须是无选项的参数变量。 & x- x- e! h( T( _; l. w) D选项及其它文件名的输入顺序可以打乱。 % }* U" G6 f5 b/ u1 h2 W* t带有空格的通配符或文件名必须加上引号: & E. _# e( t9 Q0 q/ t"Dir\Program files\*"+ r+ u2 k   b' Z& U. n Dir\"Program files"\*. M   R   V3 S/ s 通配符是一个键盘字符,例如星号(*)或问号(?),当执行添加文件、释放文件、选定文件、删除文件等操作时,您可以使用它来代表一个或多个字符。当您不知道真正字符或者不想键入完整名称时,常常使用通配符代替一个或多个字符。 ' b   s0 b, V" `' T8 G' K7-Zip 支持和 Windows 相类似的通配符: . |   r) x% ?9 a! A% r“*”可以使用星号代替零个或多个字符。 " T! c' q: o3 v+ ]8 u" F“?”可以用问号代替名称中的单个字符。 2 p9 F% Y1 ]4 o; H2 W4 ]7-Zip 使用的并不是系统处理通配符的默认方法,因而 7-Zip 不支持其它通配符规则,在系统中 *.* 相当于所有文件。而 7-Zip 会将其视为任何扩展名的全部文件。所以,要处理所有文件您必须使用 * 通配符。 & t' b7 R   U4 L! u1 `. m示例: ( r, |* b' R# h* \*.txt 这样会查找(添加、选定……)所有扩展名是“.txt”的文件 / z9 x0 }' d, B, s# z ?a* 这样会查找(添加、选定……)所有第二个字母为“a”的文件 / f+ ^8 N7 S% b. b' Q *1* 这样会查找(添加、选定……)所有包含“1”的文件 3 W# Q" f   C* h   E6 n *.*.* 这样会查找(添加、选定……)所有包含“.”的双扩展名文件 5 _, W& N( ]2 P* Z! Z' S如果在命令行中没有文件名,系统将会使用默认通配符“*”。* K. J# R7 u) w7 n3 A6 ? 档案文件中通配符及文件名的使用限制: / A( C# e1 B4 b* ]1 B通配符及文件名不能包括系统盘符或网址。每个通配符及文件名路径将被视为从盘符到当前目录的完整路径/从压缩档案的根目录算起的完整路径。换句话说,路径的开始部分(在首个斜线(“\”)之前的字符)必须是某个名称或通配符。 1 [% e: w/ V/ g, l" t0 N 通配符及文件名不能以斜线(“\”)结尾。 % t( K0 ?! L. K: L* U8 n5 G6 t通配符只可以在完整路径的最后一部分中出现。 ' M) Q' ~9 v2 O; m2 I9 _$ G2 D, U" b 示例: * n. o9 Y* u. f   N- q# @% TDir1\*.cpp 正确 ' o. P$ _   i& D7 Y8 dc:\Dir1\*.cpp 错误:路径中不能包括盘符 ! c" A. z7 f) T4 H6 YDir1\Dir2\g?.txt 正确 ; i7 Q+ P) e2 F8 g Dir1\D?r2\file1.txt 错误:只有在以路径的最后一部分才能使用通配符 ; M( k3 A! C+ \+ L8 C- C# W6 q文件列表: l   Z$ }; P4 O 您可以使用文件列表来对要操作的文件进行批量操作。在文件中的文件名必须用空格或另起一行隔开。(如使用空格格开,每一个文件必须加引号)。 - e1 A" |( j' h( y) T$ p7-Zip 命令行支持多个文件列表同时操作。2 Y+ k2 G9 |2 g: p. x2 M' Z 举个例子,这里有一个文件列表“listfile.txt”包含下列内容:" I! Z) }. C7 k/ H4 g; u' @+ Q "My programs\*.cpp"5 v; @* F) U5 ]$ k3 H6 J! b* N Src\*.cpp % ^   C   }8 b) ?; I7 w那么我们可以输入命令: ) t, u4 \" G4 |1 s7z a -tzip archive.zip @listfile.txt 9 @   h/ N. X' Q将“My programs”及“Src”目录中所有扩展名为“cpp”的文件添加到压缩档案“archive.zip”中。 & }7 _" |7 x8 N ) ^9 ?, s: b) C& f   M9 F 6 Y! V3 f* A   h+ R. X* a" B3 q命令行 + \- g+ r7 t$ S6 X2 c命令行的命令不分大小写。 6 V. I: [5 H% ]1 Y4 ~+ I7 j; f更多有关命令行的详细内容请参阅 语法。 6 Q3 L/ k' p* _( Z; X命令要点参考 # R3 h4 r/ ^- X命令 作用说明 ( M7 t) Y8 F. z! qa 添加 . M% Z1 A/ G8 y: S9 d* c d 删除 : j9 _   _2 ~$ W, W2 m: U e 释放 - Y7 {! I   _( K$ y l 列表 4 w& j5 K   X4 }+ Y# A) d* k: S t 测试 . h: w& C4 ~- P* o+ @ u 更新 ; g: ?+ R9 N' v. ~6 F9 }: yx 完整路径释放 ; w* a( q+ p+ F& `- O( ]   M. T' k   x0 ` 命令行选项/ }1 o6 h9 v9 B2 V9 |9 q' R. y 语法   V* Y, `+ p( K5 b <选项>::= <选项_符号><选项_字符>[<选项>] . m# e- \9 [$ r( F<选项_符号> ::= '/' | '-' - L$ X5 m# O' d3 V&ltswitch>::= <switch_symbol><switch_characters>[<option>] * u9 h2 \6 Y9 f<switch_symbol> ::= '/' | '-' 3 D; h. [9 g0 W3 N( d在命令行中,一个完整的选项由指定的选项、连字符(-)或斜线(/)组成,而且选项的符号不能使用缩写。, q$ P! D- o" H   b" w/ Y3 _# D 选项名称不区分大小写。而一部分选项会包括参数变量,它们是需要区分大小写的。 , [7 {6 e! b; m. E2 L1 k5 U% l% b选项可以使用在命令行中的任何位置。#( h) M. w' f: W: B" n) E" E* I9 a3 L' \' H5 U5 ]# @$ ^+ h% E( h8 B& o7 ?7 T" n   v. b; ^( z8 i/ v   Z4 S3 {# ?, F8 d* c0 \# u5 l0 p5 S; l2 |, I1 v/ T$ C+ b   `' R6 r/ O6 ~0 l. q! P# A- W& x- x- e! h( T( _; l. w) D% }* U" G6 f5 b/ u1 h2 W* t& E. _# e( t9 Q0 q/ t' b   s0 b, V" `' T8 G' K. |   r) x% ?9 a! A% r" T! c' q: o3 v+ ]8 u" F2 p9 F% Y1 ]4 o; H2 W4 ]& t' b7 R   U4 L! u1 `. m( r, |* b' R# h* \5 _, W& N( ]2 P* Z! Z' S/ A( C# e1 B4 b* ]1 B% t( K0 ?! L. K: L* U8 n5 G6 t* n. o9 Y* u. f   N- q# @% T' o. P$ _   i& D7 Y8 d! c" A. z7 f) T4 H6 Y; M( k3 A! C+ \+ L8 C- C# W6 q- e1 A" |( j' h( y) T$ p% ^   C   }8 b) ?; I7 w) t, u4 \" G4 |1 s9 @   h/ N. X' Q& }7 _" |7 x8 N) ^9 ?, s: b) C& f   M9 F6 Y! V3 f* A   h+ R. X* a" B3 q+ \- g+ r7 t$ S6 X2 c6 V. I: [5 H% ]1 Y4 ~+ I7 j; f6 Q3 L/ k' p* _( Z; X# R3 h4 r/ ^- X( M7 t) Y8 F. z! q; g: ?+ R9 N' v. ~6 F9 }: y; w* a( q+ p+ F. m# e- \9 [$ r( F- L$ X5 m# O' d3 V* u9 h2 \6 Y9 f3 D; h. [9 g0 W3 N( d, [7 {6 e! b; m. E2 L1 k5 U% l% b#

参考greegree的文章先给出一个压缩文件的例子:
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
    添加 *.exe 及 *.dll 文件到固实压缩档案 archive.7z。使用 LZMA 压缩算法、2 MB 字典大小及 BCJ 转换器。压缩将开启多线程优化(如果可用)。
   -ms 默认设置固实模式。在创建固实压缩档案模式中,它把压缩档案中的所有文件都当成一个连续数据流来看待。通常情况下,固实压缩可增加压缩比,特别是在添加大量小文件的时候 -mmt 默认开启多线程模式。    以上两条倒是可以理解,但是“-m0=BCJ -m1=LZMA:d=21 ”又该如何解释? 按照给出的中文的文档说明: -m0=BCJ -- 第一个备选的压缩算法为BCJ -m1=LZMA:d=21 -- 第二个备选的压缩算法为LZMA,指定字典大小为默认的21(2MB的1次方)2MB。
如果:想要使用最大化压缩,可以使用下面的参数选项:
    7z a -t7z DriverTest_1.7z "I:\t\t1\*" -mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt -r
-t7z -- 压缩文件的格式为7z -mx=9 -ms=200m -mf -mhc -mhcf -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -mmt -- 指定压缩算法选项 -mx=9 -- 设置压缩等级为极限压缩(默认为:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、单词大小为 64、BCJ2 过滤器) -ms=200m -- 开启固实模式,设置固实数据流大小为200MB。 -mf -- 开启可执行文件压缩过滤器。 -mhc -- 开启档案文件头压缩。 -mhcf -- 开启档案文件头完全压缩。我所使用的7z版本为4.42>2.30。 -m0=LZMA:a=2:d=25:mf=bt4b:fb=64 -- 第一个备选压缩算法为LZMA,压缩等级为最大压缩,LZMA算法使用的字典大小为25(2MB的5次方)32MB,算法的匹配器为bt4b(所需要内存为d×9.5 + 34 MB),压缩算法的紧凑字节为最大模式的64字节。 -mmt -- 开启多线程模式。 -r -- 递归到所有的子目录。

7z命令解压文件的例子:解压File.7z文件到目录Mydir。

7z x "d:\File.7z" -y -aos -o"d:\Mydir"

参数说明:

x:完整路径下解压文件
-y:所有确认选项都默认为是(即不出现确认提示)

-aos:跳过已存在的文件

-o:设置输出目录

关于内存的使用:
一般来说,WindowsXP至少使用80~160MB的内存,为了保证系统的运行正常,还要留够32MB的剩余物理内存。 所以如果是512MB的内存,那么7z压缩所使用的内存为(512-32-160)320MB,使用bt4b(d*9.5+34MB),所以d=32MB。 如果是256MB的内存,那么7z压缩所使用的内存为(256-32-120)104MB,使用bt4b(d*9.5+34MB),所以d=8MB。 由此可见,在WindowsXP的图形界面下要想得到更大的压缩比,或者扩大物理内存的容量,或者可以采用在DOS下运行32位程序的方法;否则无论你的虚拟内存或者系统的磁盘缓存设置得再大,只能看见硬盘灯狂闪得交换页面文件。 通常情况下,较大的字典文件能提供较高的压缩比。但是在压缩和解压缩的时候会比较慢而且需要较多的物理内存:压缩时所使用的物理内存约为字典文件的10倍,解压缩时所使用的物理内存约等于字典文件大小。
语法格式:(详细情况见7-zip帮助文件,看得头晕可以跳过,用到再学) 7z <command> [<switch>...] <base_archive_name> [<arguments>...]
7z.exe的每个命令都有不同的参数<switch>,请看帮助文件 <base_archive_name>为压缩包名称 <arguments>为文件名称,支持通配符或文件列表 a: 添加文件的压缩包,或者创建新的压缩包。
d: 从压缩包中删除文件。
e: 从压缩包中提取。
t: 测试压缩包的是否出错。
u: 更新压缩包中的文件。 其中,7z是至命令行压缩解压程序7z.exe,<command>是7z.exe包含的命令,列举如下:
a: Adds files to archive. 添加至压缩包 a命令可用参数: -i (Include) -m (Method) -p (Set Password) -r (Recurse) -sfx (create SFX) -si (use StdIn) -so (use StdOut) -ssw (Compress shared files) -t (Type of archive) -u (Update) -v (Volumes) -w (Working Dir) -x (Exclude)
b: Benchmark
d: Deletes files from archive. 从压缩包中删除文件 d命令可用参数: -i (Include) -m (Method) -p (Set Password) -r (Recurse) -u (Update) -w (Working Dir) -x (Exclude)
e: Extract解压文件至当前目录或指定目录 e命令可用参数: -ai (Include archives) -an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives) -i (Include) -o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude) -y (Assume Yes on all queries)
l: Lists contents of archive. t: Test u: Update
x: eXtract with full paths用文件的完整路径解压至当前目录或指定目录 x命令可用参数: -ai (Include archives) -an (Disable parsing of archive_name) -ao (Overwrite mode) -ax (Exclude archives) -i (Include) -o (Set Output Directory) -p (Set Password) -r (Recurse) -so (use StdOut) -x (Exclude) -y (Assume Yes on all queries) -m (Set compression Method) switch Specifies the compression method.
用7-ZIP实现批处理 命令行压缩和解压功能
编辑一个.bat文件;每行这样写,就可以连续压制多个目录了 7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m -mmt=2 -r {路径及7z档名} {路径及要压缩的文件名及路径 可以空格填多个}
例子:建议以成对双引号来包压缩档名和路径名 7z a -mx9 -md64m -mfb=273 -slp -ssw -v1024m "game" "d:\game\*.*" 把d:\game\ 以ultra模式 64m字典fb273 每分卷1024m模式压缩
-mxN N=0~9 ;压缩模式选择 Level Method Dictionary FastBytes MatchFinder Filter Description 0 Copy No compression. 1 LZMA 64 KB 32 HC4 BCJ Fastest compressing 3 LZMA 1 MB 32 HC4 BCJ Fast compressing 5 LZMA 16 MB 32 BT4 BCJ Normal compressing 7 LZMA 32 MB 64 BT4 BCJ Maximum compressing 9 LZMA 64 MB 64 BT4 BCJ2 Ultra compressing -mdNm 填字典大小 比如填26 和填64m一样的;看说明更大内存也可以填,比如128m字典 最大1024m
The maximum value for dictionary size is 1 GB = 2^30 bytes. Default values for LZMA are 24 (16 MB) in normal mode, 25 (32 MB) in maximum mode (-mx=7) and 26 (64 MB) in ultra mode (-mx=9).
-mfb=N 填fastbytes大小,此数字增大会稍微加大压缩但减慢速度
-slp (Set Large Pages mode);会加快压缩,但开始会卡下,This feature works only on Windows 2003 / XP x64
-ssw 也压缩共享文件
-v (Create Volumes) switch Specifies volume sizes. Syntax -v{Size}[b | k | m | g]
-mmt=N 多核选项,比如双核填2

命令行压缩解压一 7z

1) 简介 7z,全称7-Zip, 是一款开源软件。是目前公认的压缩比例最大的压缩解压软件。 主页:http://www.7-zip.org/ 中文主页:http://7z.sparanoid.com/ 命令行版本下载:http://7z.sparanoid.com/download.html 主要特征: # 全新的LZMA算法加大了7z格式的压缩比 # 支持格式: * 压缩 / 解压缩:7z, XZ, BZIP2, GZIP, TAR, ZIP * 仅解压缩:ARJ, CAB, CHM, CPIO, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, UDF, VHD, WIM, XAR, Z

2)退出代码 0 : 正常,没有错误; 1 : 警告,没有致命的错误,例如某些文件正在被使用,没有被压缩; 2 : 致命错误; 7 : 命令行错误; 8 : 没有足够的内存; 255 : 用户停止了操作;

3)使用语法 7z <命令行> [<选项>...] <基本档案名称> [<参数变量>...]

在方括号内的表达式(“[” 和 “]”之间的字符)是可选的。 在书名号内的表达式(“<” 和 “>”之间的字符)是必须替换的表达式(而且要去掉括号)。

7-Zip 支持和 Windows 相类似的通配符: “*”可以使用星号代替零个或多个字符。 “?”可以用问号代替名称中的单个字符。 如果只用*,7-Zip 会将其视为任何扩展名的全部文件。

4)命令及实例

a 添加文件到压缩档案。 7z a archive1.zip subdir\ :增加subdir文件夹下的所有的文件和子文件夹到archive1.zip中,archived1.zip中的文件名包含subdir\前缀。 7z a archive2.zip .\subdir\* :增加subdir文件夹下的所有的文件和子文件夹到archive1.zip中,archived2.zip中的文件名不包含subdir\前缀。 cd /D c:\dir1\ 7z a c:\archive3.zip dir2\dir3\ :archiive3.zip中的文件名将包含dir2\dir3\前缀,但是不包含c:\dir1前缀。 7z a Files.7z *.txt -r : 增加当前文件夹及其子文件夹下的所有的txt文件到Files.7z中。

b 测试 CPU 运行速度及检查内存错误。

d 从压缩档案删除文件。 7z d archive.zip *.bak -r :从archive.zip中删除所有的bak文件。

e 从压缩档案中释放文件到当前目录中。或者到指定的输出文件夹。输出文件夹设置可以通过 -o (设置输出文件夹) 选项来更改。此命令会将所有被释放的文件放置到一个文件夹。如果您想使用完整路径释放文件,您必须使用 x (完整路径释放) 命令。 7z e archive.zip :从压缩档案 archive.zip 中释放所有文件到当前文件夹。 7z e archive.zip -oc:\soft *.cpp :从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。

l 列出压缩档案内容。 7z l archive.zip :列出压缩档案 archive.zip 的内容。

t 测试压缩档案文件的完整性。 7z t archive.zip *.doc :在压缩档案 archive.zip 中测试 *.doc 文件的完整性。

u 在压缩档案文件中使用较新的文件替换掉较旧的文件。 7z u archive.zip *.doc :在压缩档案 archive.zip 中更新 *.doc 文件。

x 在当前目录中,使用完整路径从压缩档案中释放文件.或者到指定的输出文件夹。 7z x archive.zip :从压缩档案 archive.zip 中释放所有文件到当前文件夹。 7z x archive.zip -oc:\soft *.cpp :从压缩档案 archive.zip 中释放 *.cpp 文件到 c:\soft 文件夹。

5)更多的选项

-- 在命令行中使“--”后的选项开关“-”都失效。这样就允许在命令行中使用文件名以“-”开头的文件。 7z t -- -ArchiveName.7z :测试 -ArchiveName.7z 压缩档案.

-i指定压缩时附加文件或一类文件。此选项可附件添加多个类型。 i[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。 7z a -tzip src.zip *.txt -ir!DIR1\*.cpp :从当前目录中添加 *.txt 文件,和 DIR1 目录及其子目录中的 *.cpp 文件到 src.zip 压缩档案。

-x 指定某一文件或某一类文件从操作中排除。此选项可同时排除多个类型。 x[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。 7z a -tzip archive.zip *.txt -x!temp.* :添加除 temp.* 文件之外的所有 *.txt 文件到压缩档案 archive.zip。

-o 指定释放文件的输出文件夹。此选项只能和释放命令配合使用。 7z x archive.zip -oc:\Doc :从 archive.zip 压缩档案释放所有文件到 c:\Doc 文件夹。

-r 递归子目录选项。 -r 开启递归子目录。对于 e (释放)、l (列表)、t (测试)、x (完整路径释放) 这些在压缩档案中操作的命令, 会默认使用此选项。 -r- 关闭递归子目录。对于 a (添加)、d (删除)、u (更新) 等所有需扫描磁盘文件的命令,会默认使用此选项。 -r0 开启递归子目录。但只应用于通配符。 7z l archive.zip -r- *.doc :列出在 archive.zip 压缩档案中根目录下的 *.doc 文件。 7z a -tzip archive.zip -r src\*.cpp src\*.h :将 src 目录及其子目录中的 *.cpp 及 *.h 文件添加到 archive.zip 压缩档案。

-t 指定压缩档案格式。指定压缩档案格式。它们可以是:zip、7z、rar、cab、gzip、bzip2、tar 或其它格式。而 默认值是 7z 格式。 7z a -tzip archive.zip *.txt :使用 zip 格式从当前目录中添加所有 *.txt 文件到压缩档案 archive.zip。

-y 使 7-Zip 执行命令时的大多数提示失效。您可以使用此选项来阻止在 e (释放) 和 x (完整路径释放) 命令中文件覆盖时的提示。 7z x src.zip -y :从 src.zip 释放所有文件。所有的覆盖提示将被阻止且所有相同文件名的文件将被覆盖。

-v指定分卷大小。 {Size}[b | k | m | g] 指定分卷大小,可以使用字节、KB(1 KB=1024 字节),MB(1 MB = 1024 KB)或 GB(1 GB = 1024 MB)。如果您只指定了 {Size},7-zip 将把它视为字。 7z a a.7z *.txt -v10k -v15k -v2m : 创建 a.7z 分卷压缩档案。第一个分卷为 10 KB,第二个为 15 KB,剩下全部为 2 MB。

-p 指定密码。 7z x archive.zip -psecret :将设有密码“secret”的压缩档案 archive.zip 中所有文件释放。

-ao 指定在释放期间如何覆盖硬盘上现有的同名文件。 语法:-ao[a | s | u ] -aoa 直接覆盖现有文件,而没有任何提示。 -aos 跳过现有文件,其不会被覆盖。 -aou 如果相同文件名的文件以存在,将自动重命名被释放的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。 -aot 如果相同文件名的文件以存在,将自动重命名现有的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。 7z x test.zip -aoa :从压缩档案 test.zip 中释放所有文件并却不做提示直接覆盖现有文件。

-an 不解析命令行中的 archive_name 区域。此选项必须和 -i (附加文件) 开关一起使用。比如您为压缩档案使用列表文件,您就需要指定 -ai 选项,所以您需要禁止解析命令行中的 archive_name 区域。 实例见后面的-ai和-ax中。

-ai 指定附加文件,包括压缩档案文件名及通配符。此选项可同时附加多个类型。 ai[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。 7z t -an -air!*.7z : 在当前目录及子目录下测试 *.7z 压缩档案。

-ax 指定必须从操作中排除的压缩档案。此选项可同时排除多个类型。 ax[<recurse_type>]<file_ref> 其中<recurse_type>为可以为r[- | 0](具体的-r选项见后面-r),<file_ref>可以为@{listfile} | !{wildcard}。 7z t -an -ai!*.7z -ax!a*.7z :测试除 a*.7z 之外的 *.7z 压缩档案。

更多的不常用的选项,可以查看帮助。例如:-m设置压缩算法;-scs 设置要压缩的文件的列表文件的字符集;-seml通过电子邮件发送压缩档;-sfx创建自释放档;-si从标准输入读入数据,-so从输出到标准输 出;-slp设置大内存模式;-slt显示技术信息;-ssc设置区分大小写;-ssw压缩正在写入的文件;-u更新选项。

【在Windows下进行的编程人员,你真的需要学习下Linux】的更多相关文章

  1. Windows Phone下的Socket编程

    讨论下有关于Windows Phone下的Socket编程方面的知识. Socket就是通常所称的套接字,用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过Socket向网络发出请求或者应答 ...

  2. Linux下TCP网络编程与基于Windows下C#socket编程间通信

    一.linux下TCP网络编程基础,需要了解相关函数 Socket():用于套接字初始化. Bind():将 socket 与本机上的一个端口绑定,就可以在该端口监听服务请求. Listen():使s ...

  3. winsock教程- windows下的socket编程(c语言实现)

    winsock教程- windows下的socket编程(c语言实现) 使用winsock进行socket 编程     这是一个学习windows下socket编程(c语言)的快速指南.这是因为一下 ...

  4. 【windows核心编程】 第八章 用户模式下的线程同步

    Windows核心编程 第八章 用户模式下的线程同步 1. 线程之间通信发生在以下两种情况: ①    需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性 ②    一个线程需要通知其他线程 ...

  5. Windows环境下用C#编程将文件上传至阿里云OSS笔记

    Windows环境下用C#编程将文件上传至阿里云OSS笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/detai ...

  6. 在windows下的QT编程中的_TCHAR与QString之间的转换

    由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef ...

  7. Windows平台下的多线程编程

    线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件.信号标识及动态分配的内存等.一个进程内的所有线程使用同一个地址空间,而这些线程的执行由系统调度 ...

  8. c++ 网络编程(八) LINUX-epoll/windows-IOCP下 socket opoll函数用法 优于select方法的epoll 以及windows下IOCP 解决多进程服务端创建进程资源浪费问题

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9622548.html 锲子:关于并发服务器中的I/O复用实现方式,前面在网络编程系列四还是五来 ...

  9. Linux下的C编程实战

    Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来, Linu ...

随机推荐

  1. C51工具是怎么进行覆盖分析的

    C51工具针对8051微控制器的有限存储器资源进行了优化设计. 为了最有效地利用存储器,根据一个很容易解释的方法,自动变量和函数参数在存储器中均进行覆盖处理. 首先,连接器根据源程序生成调用树.例如: ...

  2. WINDOWS 2012忘记密码之后。。。

    要使用windows server 2012安装DVD,选择光盘引导进入 进入修复系统 选择疑难解答,进入界面 选择命令提示符 切换目录至系统目录 执行move命令 执行 copy命令 重新启动系统, ...

  3. php将会话保存在数据库里

    php默认把会话保存在临时文件中,保存在数据库中可以提高安全性,在共享主机服务器上,所有web站点都使用同一个临时目录,这意味着数十个程序都在同一位置进行文件读取的操作,我们很容易就编写一个脚本从这个 ...

  4. 给Select赋值 innerHTML 不兼容IE6\IE7\IE8\IE9

    <select class="b-select" id="location-province" name="Province" def ...

  5. Gym 100570E : Palindrome Query

    De Prezer loves palindrome strings. A string s1s2...sn is palindrome if and only if it is equal to i ...

  6. 线程篇-01-NSThread

    一.概述 1.使用NSThread创建线程的三种方式和区别. 二.核心 2.1 NSThread创建线程的三种方式和区别. 主要有NSThread对象的创建线程的类方法detachNewThreadS ...

  7. Linux硬盘分区和格式化

    分区与格式化   先用fdisk分区,分区完成后再用mkfs格式化并创建文件系统,挂载,磁盘就能使用啦.   分区的原理:        MBR:主引导扇区 主分区表:64bytes,最多只能分四个主 ...

  8. memcached学习——memcached的内存分配机制Slab Allocation、内存使用机制LRU、常用监控记录(四)

    内存分配机制Slab Allocation 本文参考博客:https://my.oschina.net/bieber/blog/505458 Memcached的内存分配是以slabs为单位的,会根据 ...

  9. Oracle 方法

    1.递归 select zxdept from (select d.id, d.zxdept, d.RANK, d.fatherId from web_dept d start with d.id = ...

  10. Lua Table 操作

    Lua中table类似与C#种的字典,其实就是一个key-value键值对数据结构.来学习下table基本操作 Table的创建 myTable = {} --表名后面使用{}赋值,表示一个空的表 m ...