以下代码从另一个位置的归档中提取文件,有人可以解释程序中究竟发生了什么。
@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)
答案 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