有人可以解释这个批处理代码,用于从存档中提取特定文件

时间:2014-05-29 11:26:40

标签: windows batch-file archive

以下代码从另一个位置的归档中提取文件,有人可以解释程序中究竟发生了什么。

@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 个答案:

答案 0 :(得分: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(来自{{1}的第二个令牌}}} for /f(输出到作为脚本中的第二个参数放入的目录)-o%2(是覆盖的是)

-y - 这是错误标签
:error将以下内容打印到屏幕:usage:jobextract.bat(inputFile.txt)(o / p dir)

这里有关于for循环的更多信息:LINK和/或@echo usage : jobextract.bat (inputFile.txt) (o/p dir)
以下是for /?和标签上的信息:LINK和/或goto