请解释此批处理文件命令以解压缩文件

时间:2016-06-14 05:51:38

标签: batch-file runtime-error 7zip

for /r %%I IN (' *.zip ') DO (
"C:\Program Files\7-Zip\7z.exe" x -o"%%~dpnI" "%%I"
)
pause

嗨,我在线获得了这个批处理命令,递归解压缩文件。 我想了解For循环在这种情况下的作用。

我问这个问题是因为我在运行bat文件时收到错误,因为该命令还会选择其他扩展名的文件夹和文件,而且会抛出以下错误。

D:\Unzip_folders\New folder>("C:\Program Files\7-Zip\7z.exe" x -o"D:\Unzip_folders\New folder\23Nov2015\error_log.17112015\'" "D:\Unzip_folders\New folder\23Nov2015\error_log.17112015\'" )

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21

Scanning the drive for archives:

ERROR: The system cannot find the file specified.
D:\Unzip_folders\New folder\23Nov2015\error_log.17112015\'

2 个答案:

答案 0 :(得分:0)

如果您分析错误消息,您会注意到每个文件名末尾有一个'。那是因为你使用了错误的引号。

完全跳过它们:

for /r %%I IN (*.zip) DO (

或使用双引号:

for /r %%I IN ("*.zip") DO (

答案 1 :(得分:0)

Map<Long, String> hm = new HashMap<>();

final Contact c = ...;
Optional<Long> idOpt = hm.entrieSet().stream()
    .filter((e) -> e.getValue().equals(c.getPhone())
    .map((e2) -> e2.getKey())
    .findAny();
idOpt.ifPresent(id -> System.out.println(id));
long id = idOpt.orElse(-1L);

您的代码不正确。这是正确的。