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\'
答案 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);
您的代码不正确。这是正确的。