Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmd 如何使用命令提示符检查ZIP文件夹中是否存在文件?_Cmd_Zip - Fatal编程技术网

Cmd 如何使用命令提示符检查ZIP文件夹中是否存在文件?

Cmd 如何使用命令提示符检查ZIP文件夹中是否存在文件?,cmd,zip,Cmd,Zip,在尝试解压缩之前,我想检查main.lua是否存在于ZIP文件夹中。另外,我在命令提示符中使用7-zip来归档内容。我有类似的东西,但我想知道它是否可以简化: if exist "%temp\main.lua" ( del "%temp\main.lua" ) 7z e "(ZIP Folder)" "-o%temp%" if exist "%temp\main.lua" ( rem main.lua is present in the ZIP folder. ) else ( rem main

在尝试解压缩之前,我想检查main.lua是否存在于ZIP文件夹中。另外,我在命令提示符中使用7-zip来归档内容。我有类似的东西,但我想知道它是否可以简化:

if exist "%temp\main.lua" (
del "%temp\main.lua"
)
7z e "(ZIP Folder)" "-o%temp%"
if exist "%temp\main.lua" (
rem main.lua is present in the ZIP folder.
) else (
rem main.lua is NOT present in the ZIP folder.
)

实际上,我更喜欢使用VBScript,因为不是每个人都有7-zip。

与其提取zip,为什么不直接使用list命令(l)查看文件是否存在。所以你可以这样做:

set mainfound=0
7z l zipname.zip | findstr /r /c:" main.lua$" >nul && set mainfound=1
然后可以测试
%mainfound%
的值,以确定是否找到main.lua


我正在使用正则表达式搜索来确保文件名前有一个空格,并且它在行的末尾结束(正则表达式中的
$
)。这样我们就不会从部分匹配中得到误报。

与其提取zip文件,不如使用list命令(l)查看文件是否存在。所以你可以这样做:

set mainfound=0
7z l zipname.zip | findstr /r /c:" main.lua$" >nul && set mainfound=1
然后可以测试
%mainfound%
的值,以确定是否找到main.lua


我正在使用正则表达式搜索来确保文件名前有一个空格,并且它在行的末尾结束(正则表达式中的
$
)。这样我们就不会从部分匹配中得到误报。

谢谢!我知道7-zip中有一个list命令,我只是不知道命令提示符中有一个findstr命令。欢迎使用,但如果它解决了您的问题,请使用。关于正则表达式,如果文件名为uuuuuuuu_uuuuuuu.lua,则返回true,因此我将正则表达式替换为^…-。。。。。。。。。。。。main.lua$”。我只是不知道相同的格式是否适用于旧版本的7-zip。我想知道
[0-9]main\.lua$
是否足够好?至少一个数字(来自文件大小),两个空格,然后是名称。名称中有两个空格的文件名的可能性有多大?还要注意,文件名中的
需要用反斜杠转义,否则它将匹配任何内容-我在原始答案中忘记了这一点。谢谢!我知道7-zip中有一个list命令,我只是不知道有findstr命令欢迎使用,但如果它解决了您的问题,请使用。关于正则表达式,如果文件名为uuuuuuuu.main.lua,则返回true,因此我将正则表达式替换为^…-…..main.lua$”。我只是不知道相同的格式是否适用于旧版本的7-zip。我想知道
[0-9]main\.lua$
是否足够好?至少一个数字(来自文件大小)、两个空格,然后是名称。文件名中有两个空格的可能性有多大?还要注意文件名中的
需要用反斜杠转义,否则它将匹配任何内容-我在最初的回答中忘记了这一点。