有人可以解释这个从档案中提取特定文件的批处理代码吗
Posted
技术标签:
【中文标题】有人可以解释这个从档案中提取特定文件的批处理代码吗【英文标题】:Can somebody explain this batch code for extracting specific file from archive 【发布时间】:2014-05-29 11:26:40 【问题描述】:下面的代码从另一个位置的存档中提取文件,有人可以解释一下程序中到底发生了什么。
@echo off
if "%1" == "" GOTO error
if "%2" == "" GOTO error
FOR /F "tokens=1,2 delims=^" %%G IN (%1) DO call 7za.exe e %%G %%H -o%2 -y
:error
@echo usage : jobextract.bat (inputFile.txt) (o/p dir)
【问题讨论】:
【参考方案1】:解释如下:
@echo off
- 关闭命令回显。见echo /?
if "%1" == "" GOTO error
- 如果传入脚本的第一个参数为空,则转到(并跳过其间的所有内容)名为error
if "%2" == "" GOTO error
- 如果传入脚本的第二个参数为空,转到(并跳过其间的所有内容)一个名为 error
的标签
FOR /F "tokens=1,2 delims=^" %%G
- 由^
(插入符号)分隔的接下来的两个项目(令牌),以名为%%G
的变量开头IN (%1)
- 在以下输入中(parameter 1)
DO call
- 运行以下7za.exe e %%G %%H -o%2 -y
- 运行7za.exe1
和e
(提取)%%G
(来自for /f
的第一个令牌)%%H
(来自for /f
的第二个令牌)-o%2
(输出到作为脚本中第二个参数放入的目录)-y
(是覆盖)
:error
- 这是错误标签@echo usage : jobextract.bat (inputFile.txt) (o/p dir)
在屏幕上打印以下内容:用法:jobextract.bat (inputFile.txt) (o/p dir)
这里有更多关于 for 循环的信息:LINK 和/或 for /?
这是goto
和标签的信息:LINK 和/或goto /?
【讨论】:
以上是关于有人可以解释这个从档案中提取特定文件的批处理代码吗的主要内容,如果未能解决你的问题,请参考以下文章