文章目录

  • for 命令实现
    • 使用方法
    • 批处理 for 命令说明
  • **forfiles** 命令实现
    • 批处理 forfiles 命令说明
  • 关于 7-zip
  • DEL 命令删除文件
  • 参考阅读

最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐。为了提高效率且,方便后面取用,所有打算捣鼓个批处理文件,来实现命令行调用 7-zip 来对目录下的每个文档进行单独打包,并将打包后的压缩包存到指定的目录下,详细内容见下文。

本文在 Windows10 64位 操作系统下,使用的命令行提示符(cmd)版本为 10.0.17134.7067-zip64位 16.04 版本,使用下面脚本时请确保安装了 7-zip ,可在此处下载最新版。


for 命令实现

以下展示几种通过 for 命令来遍历打包压缩批处理文件的示例:

@echo off
:: 切换当前编码方式为 UTF-8,处理命令行窗口标题乱码问题
chcp 65001
title 批量压缩当前目录下个文件到各自压缩包
:: 切换回默认 GBK 编码,处理命令行输出乱码问题
chcp 936
echo ---------- START -------------:: 实现一:遍历当前目录下(不含子目录)的pdf文件, 压缩成与当前文件同名的 7z 格式文件, 最后压缩文件存放在当前目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下
:: for %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" ):: 实现二:遍历当前目录下(不含子目录)的文件夹进行压缩, 压缩成与当前文件夹同名的 7z 格式文件 , 最后压缩文件存放在目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下(如想以目录形式打包,可以参考此方式)
:: for /d %%F in (*) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" ):: 实现三:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在目录下新建的 7z 文件夹(可自定义,特换自己想要的文件夹名称)下
:: for /r %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z ".\7z\%%~nF.7z" "%%F" ):: 实现四:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在与当前文件同目录下
:: for /r %%F in (*.pdf) do (echo "%%~nF" && "C:\Program Files\7-Zip\7z.exe" a -t7z "%%~dpnF.7z" "%%F" ):: 实现五:遍历当前目录下(含子目录)的pdf文件进行压缩, 打包到 PDF.7z 压缩包内 , 最后压缩文件存放在当前目录下
::for /r %%F in (*.pdf) do (echo "%%~nF" && 7z a -t7z "PDF.7z" "%%F" )echo ----------  END  -------------
pause

以上展示了几种处理方式,更多方式自行扩展,如:

  • 上述示例均已 .pdf 类型为例,如果想压缩其他类型文件,可以更换 *.pdf 为对应的 *.类型 (如, *.doc ),其他通配符自行尝试;
  • 如想将文件压缩为 zip 格式,则替换命令中的 -t7z ".\7z\%%~nF.7z" 替换成 -tzip ".\7z\%%~nF.zip"
  • 如想改变压缩算法或比例等,参考下文 7z 的相关命令,进行尝试;

使用方法

  1. 复制以上代码内容到新建的文本文档内;(可以在此处下载脚本文件
  2. 确定要使用哪种实现来批量打包自己的文件,则删除对应实现下 for 命令前的双英文冒号(::,此符号等效于 rem 命令,是批处理文件的注释标识符,双英文冒号后面的内容是注释说明,不会被当做代码执行 ),并保存;
  3. 修改该新建文本文档的扩展名 .txt 改为 .bat,文件名自行定义;
  4. 将文件拷到要使用的目录下,双击运行(切记不要管理员模式运行)。

使用上述代码需要特别注意:

  • 当前 for 命令实现版本,不要使用管理员方式运行!不要使用管理员方式运行!不要使用管理员方式运行!重要的事情说三遍!管理员方式运行,会在 System32 目录下生效(因管理员模式运行时,会调用 System32 目录下的 cmd 命令提示符来执行脚本) ,切记!
  • 代码中的 C:\Program Files\7-Zip\7z.exe 是本人电脑上安装的路径,注意安装了 7-zip ,并修改为自己电脑上的路径,否则无法使用,如果将 7z 安装路径配置到环境变量 path 中,则可以将此处的路径替换为 7z.exe(或 7z

批处理 for 命令说明

for 命令可以对一组文件中的每个文件进行指定的操作,命令语法如下:

FOR %variable IN (set) DO command [command-parameters]

cmd 命令行下使用命令 for /? 可以看到 for 相关的解释说明:

对一组文件中的每一个文件执行某个特定命令。FOR %variable IN (set) DO command [command-parameters]%variable  指定一个单一字母可替换的参数。(set)      指定一个或一组文件。可以使用通配符。command    指定对每个文件执行的命令。command-parameters为特定命令指定参数或命令行开关。在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.如果启用命令扩展,则会支持下列 FOR 命令的其他格式:FOR /D %variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。FOR /L %variable IN (start,step,end) DO command [command-parameters]该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列 1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %variable IN ("string") DO command [command-parameters]FOR /F ["options"] %variable IN ('command') DO command [command-parameters]或者,如果有 usebackq 选项:FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %variable IN ("string") DO command [command-parameters]FOR /F ["options"] %variable IN ('command') DO command [command-parameters]fileset 为一个或多个文件名。继续到 fileset 中的下一个文件之前,每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。你可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为:eol=c           - 指一个行注释字符的结尾(就一个)skip=n          - 指在文件开始时忽略的行数。delims=xxx      - 指分隔符集。这个替换了空格和制表符的默认分隔符集。tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。usebackq        - 指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在 file-set中使用双引号扩起文件名称。某些范例可能有助:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 函数体,用逗号和/或空格分隔符号。请注意,此 for 函数体的语句引用 %i 来获得第二个符号,引用 %j 来获得第三个符号,引用 %k来获得第三个符号后的所有剩余符号。对于带有空格的文件名,你需要用双引号将文件名括起来。为了用这种方式来使用双引号,还需要使用 usebackq 选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。%i 在 for 语句中显式声明,%j 和 %k 是通过tokens= 选项隐式声明的。可以通过 tokens= 一行指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或"Z" 的变量。请记住,FOR 变量是单一字母、分大小写和全局的变量;而且,不能同时使用超过 52 个。还可以在相邻字符串上使用 FOR /F 分析逻辑,方法是,用单引号将括号之间的 file-set 括起来。这样,该字符串会被当作一个文件中的一个单一输入行进行解析。最后,可以用 FOR /F 命令来分析命令的输出。方法是,将
括号之间的 file-set 变成一个反括字符串。该字符串会
被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到
内存中,并被当作文件分析。如以下例子所示:FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i会枚举当前环境中的环境变量名称。另外,FOR 变量参照的替换已被增强。你现在可以使用下列
选项语法:%~I          - 删除任何引号("),扩展 %I%~fI        - 将 %I 扩展到一个完全合格的路径名%~dI        - 仅将 %I 扩展到一个驱动器号%~pI        - 仅将 %I 扩展到一个路径%~nI        - 仅将 %I 扩展到一个文件名%~xI        - 仅将 %I 扩展到一个文件扩展名%~sI        - 扩展的路径只含有短名%~aI        - 将 %I 扩展到文件的文件属性%~tI        - 将 %I 扩展到文件的日期/时间%~zI        - 将 %I 扩展到文件的大小%~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串可以组合修饰符来得到多重结果:%~dpI       - 仅将 %I 扩展到一个驱动器号和路径%~nxI       - 仅将 %I 扩展到一个文件名和扩展名%~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名%~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展到找到的第一个驱动器号和路径。%~ftzaI     - 将 %I 扩展到类似输出线路的 DIR在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法
用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。

微软文档说明中语法如下

for {%%|%}<Variable> in (<Set>) do <Command> [<CommandLineOptions>]
参数 描述
{%%|%} 必需。 表示可替换参数。在命令提示符执行 for 命令时使用一个百分号 ( % ), 在命令批处理文件中执行 for 命令时使用双百分号 ( %% ) 。变量区分大小写,且必须使用字母表示,如 %A%B,或 %C
() 必需。 指定一个或多个文件,目录或文本字符串,或运行该命令的一系列值。 两边需要圆括号。
必需。 指定要在每个文件、 目录或文本字符串或上中包含的值的范围缩小执行的命令设置
指定你想要指定命令中使用任何命令行选项。
/? 在命令提示符下显示帮助。

更多介绍及示例参看此处。


forfiles 命令实现

以下展示几种通过 forfiles 命令来遍历打包压缩批处理文件的示例:

@echo off
:: 切换当前编码方式为 UTF-8,处理命令行窗口标题乱码问题
chcp 65001
title 批量压缩当前目录下个文件到各自压缩包
:: 切换回默认 GBK 编码,处理命令行输出乱码问题
chcp 936
echo ---------- START -------------::实现一:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在 7z 目录下
:: Forfiles /P .\ /s /m *.pdf /c "cmd /c echo @FNAME && 7z a -t7z .\7z\@FNAME.7z @PATH"::实现二:遍历当前目录下(含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在与当前文件同目录下
:: Forfiles /P .\ /s /m *.pdf /c "cmd /c echo @FNAME && 7z a -t7z ./@FNAME.7z @PATH"::实现三:遍历当前目录下(不含子目录)的pdf文件进行压缩, 压缩成与当前文件同名的 7z 格式文件 , 最后压缩文件存放在 7z 目录下
::Forfiles /P .\ /m *.pdf /c "cmd /c echo @FNAME && 7z a -t7z .\7z\@FNAME.7z @RELPATH"::实现四:遍历当前目录下(含子目录)的pdf文件进行压缩, 打包到 PDF.7z 压缩包内 , 最后压缩文件存放在当前目录下
:: Forfiles /P .\ /s /m *.pdf /c "cmd /c echo @FNAME && 7z a -t7z .\PDF.7z @PATH"echo ----------  END  -------------
pause

以上展示了几种 forflies 命令的处理方法,更多扩展使用,自行尝试,使用方法类似之前 for 命令实现的使用方法。可以在此处下载脚本文件

使用上述代码需要特别注意:

  • forfiles 命令,需要自己给定要处理的目录路径(如,代码中的 D:\work 是我存放 pdf 等文件的目录,替换成自己的目录即可)

  • 给定目录后,可以在任意位置执行该脚本,且可以管理员方式运行。

  • 7-zip 安装路径配置到环境变量 path 中,以方便在 forfilescmd 命令字符串中使用


批处理 forfiles 命令说明

forfiles 命令可以对一组文件中的每个文件进行指定的操作,命令语法如下:

FORFILES [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] {yyyy/MM/dd | dd}]

cmd 命令行下使用命令 forfiles /? 可以看到 forfiles 相关的解释说明:

FORFILES [/P pathname] [/M searchmask] [/S][/C command] [/D [+ | -] {yyyy/MM/dd | dd}]描述:选择一个文件(或一组文件)并在那个文件上执行一个命令。这有助于批处理作业。参数列表:/P    pathname      表示开始搜索的路径。默认文件夹是当前工作的目录 (.)。/M    searchmask    根据搜索掩码搜索文件。默认搜索掩码是 '*'。/S                  指导 forfiles 递归到子目录。像 "DIR /S"。/C    command       表示为每个文件执行的命令。命令字符串应该用双引号括起来。默认命令是 "cmd /c echo @file"。下列变量可以用在命令字符串中:@file    - 返回文件名。@fname   - 返回不带扩展名的文件名。@ext     - 只返回文件的扩展名。@path    - 返回文件的完整路径。@relpath - 返回文件的相对路径。@isdir   - 如果文件类型是目录,返回 "TRUE";如果是文件,返回 "FALSE"。@fsize   - 以字节为单位返回文件大小。@fdate   - 返回文件上一次修改的日期。@ftime   - 返回文件上一次修改的时间。要在命令行包括特殊字符,字符请以 0xHH形式使用十六进制代码(例如,0x09 为 tab)。内部 CMD.exe 命令前面应以 "cmd /c" 开始。/D    date          选择文件,其上一次修改日期大于或等于 (+),或者小于或等于 (-) 用 "yyyy/MM/dd" 格式指定的日期;或选择文件,其上一次修改日期大于或等于 (+)当前日期加 "dd" 天,或者小于或等于 (-) 当前日期减 "dd" 天。有效的 "dd" 天数可以是0 - 32768 范围内的任何数字。如果没有指定,"+" 被当作默认符号。/?                  显示此帮助消息。示例:FORFILES /?FORFILESFORFILES /P C:\WINDOWS /S /M DNS*.*FORFILES /S /M *.txt /C "cmd /c type @file | more"FORFILES /P C:\ /S /M *.batFORFILES /D -30 /M *.exe/C "cmd /c echo @path 0x09 在 30 前就被更改。"FORFILES /D 2001/01/01/C "cmd /c echo @fname 在 2001年1月1日就是新的。"FORFILES /D +2019/6/14 /C "cmd /c echo @fname 今天是新的。"FORFILES /M *.exe /D +1FORFILES /S /M *.doc /C "cmd /c echo @fsize"FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"

微软文档说明中语法如下

forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]
参数 描述
/p 指定开始搜索的路径。默认情况下,搜索从当前工作目录开始。
/m 根据指定的搜索掩码搜索文件。默认搜索掩码是 *.\ *
/s 指示forfiles命令以递归方式搜索子目录。
在每个文件上运行指定的命令。命令字符串包含在双引号中。默认命令是“cmd / c echo @file”。
/d [{+|-}]⁠[{|}] 选择具有指定的时间范围内的上次修改日期的文件。
- 选择文件的上次修改日期晚于或等于 ( + ) 或早于或等于 ( - ) 指定的日期,其中日期采用格式 MM/DD/YYYY。
- 选择文件的上次修改日期晚于或等于 ( + ) 的当前日期加上指定,天内或早于或等于 ( - ) 的当前日期减去天数指定。
有效值范围 0-32,768 中包含任意数量。 如果指定没有登录,则 + 默认情况下使用。
/? 在命令提示符下显示帮助。

更多介绍及示例参看此处


关于 7-zip

7-Zip 是一款拥有极高压缩比的开源压缩软件。支持 Windows、Linux等平台。通常使用 7-Zip.7z 格式能比使用 .zip 格式的压缩档案小 30-70%。并且使用 7-Zip 创建的 .zip 格式比大多数其它压缩软件创建的都小 2-10%。关于 7-zip 等更多内容,可以参看官网说明。

7-zip 安装完成后,在安装目录下,可以找到当前版本 7-zip.chm 帮助文档,中文帮助文档可以在此处下载 ,文档下载后,打开无内容,可以尝试在文档属性中勾选 解除锁定 ,点击应用即可。

7-zip 命令行的语法格式大致如下:

7z <command> [<switch>...] <base_archive_name> [<arguments>...]7z <命令行> [<选项>...] <基本档案名称> [<参数变量>...]

关于 7-zip 命令行版本的更多内容,在文档中有较为详细的介绍,并附有示例,可以自行学习尝试。


DEL 命令删除文件

最后,附上递归删除指定类型文件批处理代码(可以用来批量删除打包的源文件)

**特别注意:**此删除为完全删除,回收站不可见,且无法撤销还原,请慎用!!!

:: 删除目录下(含子目录下)符合条件的文件
@echo off
:: 不推荐使用此方法,管理员模式运行时可能会误删 System32 目录下文件,请慎用!!!
::for /r %%F in (*.7z) do (DEL /p "%%F" ):: 推荐使用此方法,支持管理员方式运行(因提供了绝对路径)
forfiles /P "D:\work" /s /m *.7z /c "cmd /c DEL /p @PATH"
pause

cmd 命令行下使用命令 DEL /? 可以看到 DEL 相关的解释说明:

删除一个或数个文件。DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] namesnames         指定一个或多个文件或者目录列表。通配符可用来删除多个文件。如果指定了一个目录,该目录中的所有文件都会被删除。/P            删除每一个文件之前提示确认。/F            强制删除只读文件。/S            删除所有子目录中的指定的文件。/Q            安静模式。删除全局通配符时,不要求确认/A            根据属性选择要删除的文件属性          R  只读文件                     S  系统文件H  隐藏文件                     A  存档文件I  无内容索引文件               L  重分析点-  表示“否”的前缀如果命令扩展被启用,DEL 和 ERASE 更改如下:/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

建议: 使用删除时,DEL 命令后使用 /p 命令参数,来手动确认删除文件,防止误删!


参考阅读

微软文档 - Windows Commands

Computer Hope - Microsoft DOS and Windows command line

7-zip 中文帮助文档

Windows小技巧 -- 批处理文件实现目录下文件批量打包压缩相关推荐

  1. 7z替换exe文件内容不能替换文件_Windows小技巧 批处理文件实现目录下文件批量打包压缩...

    最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐.为了提高效率且,方便后面取用,所有打算捣鼓个 ...

  2. c# 指定打开某个路径下的CMD_Windows小技巧 批处理文件实现目录下文件批量打包压缩...

    最近整理资料,发现很多 pdf 文档,占用了不少的存储空间,考虑使用 7-zip 进行压缩存储,由于文件比较多,且分散在不同目录下,一个个文件压缩比较繁琐.为了提高效率且,方便后面取用,所有打算捣鼓个 ...

  3. vue中实现文件批量打包压缩下载(以及下载跨域问题分析)

    上次做了一个选择多个数据生成多个二维码并下载,当时项目催的紧,就简单写了个循环生成二维码下载,一次性会下载很多文件,特别难整理: 刚好这次项目又遇到类似这种功能,需要一次性批量下载多个文件,那么就安排 ...

  4. Windows下目录下文件批量重命名

    step 1:cmd命令行,进入文件目录, 执行:dir /b>rename.xls 即在文件目录下生成所有文件名的表格. step 2:打开 rename.xls, 在B列下写入修改后文件名 ...

  5. Windows小技巧 -- 命令行窗口打开指定目录的资源管理器

    文章目录 方法一 explorer 命令快速打开指定目录的资源管理器 方法二 start 命令快速打开指定目录的资源管理器 start 命令小记 打开系统应用 打开新的命令行窗口 打开命令行窗口并执行 ...

  6. windows小技巧1——路径太长导致文件无法删除

    windows小技巧1--路径太长导致文件无法删除 路径太长 原因: 1.超过了大多数Windows所能接受的255个字节(NTFS文件系统没有这个问题,它可以容纳更长的路径) 2.文件的深度超过 1 ...

  7. windows 查找目录下文件中包含某个字符的文件

    一.可以使用windows自带的findstr来实现. 例子(1) findstr /s /i "string" . 上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中 ...

  8. windows-运维-11 windows小技巧

    windows-运维-11 windows小技巧 cmd用不了ping命令 在cmd中用PING命令时,出现'Ping' 不是内部或外部命令,也不是可运行的程序或批处理文件. 先了解一下内容: 1.可 ...

  9. Windows 小技巧10--Windows常见软件、系统配置

    Windows 小技巧10--Windows常见软件.系统配置 Windows是绝大多数人最常用的系统,因此有必要熟悉其常见的软件使用方法和系统配置.以下为笔者根据个人使用情况记录的一些常用操作,归类 ...

最新文章

  1. 强悍!使用Flash和Silverlight制作控件
  2. 使sqoop能够启用压缩的一些配置
  3. [XA]转:一个关于结对编程(Pair Programming)的讲义
  4. 裘宗燕-数据结构与算法python描述-ppt及源代码
  5. 如何10分钟入门3D游戏开发?
  6. LeetCode 660. 移除 9(9进制)
  7. String int之间转换
  8. 在5G时代,微信还能活多久?
  9. python不等于缺陷
  10. indesign教程,了解基本文本格式
  11. 合并出错:svn Working copy and merge source not ready for reintegration
  12. 360安全卫士加速球误关闭某个应用软件
  13. Android studio 解决Gradle下载缓慢的问题
  14. python充分理解def语句
  15. 利用华为DTM将事件发送到Firebase
  16. 一名大一新生的年终总结
  17. JS 之Node节点的 属性、方法 获取
  18. 微信爬取过程中参数分析
  19. UI设计和前端开发的区别
  20. 【FI】SAP 付款及清账

热门文章

  1. 【一天一门编程语言】Go 语言程序设计极简教程
  2. 修改MySQL 数据库名称
  3. Android图片加载优化
  4. etp服务器怎么连接共享文件夹,Everything共享文件操作方法
  5. 基于Opencv-python 实现视频按帧截取图片
  6. [educoder] 用YACC(BISON)生成语法分析和翻译器
  7. pycharm 主题设置
  8. Scratch(四十):疯狂猜成语
  9. ubuntu 安装gcc-4.9
  10. 2018 Unreal Open Day参会总结