为什么我的代码没有解压用户提供的文件?

问题描述 投票:0回答:1

我正在编写一个批处理文件,用于加密/压缩和解密/解压缩文件。当用户选择解密/解压缩时,程序会解密它,但不会解压缩它,我不明白为什么。

这是有问题的部分:

SET /P FILEPATH=Please enter entire filepath of the file you wish to decompress and unencrypt: 
ECHO 
SET /P UNENCRYPTED=Please enter filepath of the file you wish to decompress and unencrypt, but without the final extension. For example, filepath.backup.zip.aes becomes filepath.backup.zip:

aescrypt.exe -d %FILEPATH%
FOR %%F IN (%UNENCRYPTED%) DO SET FILE_PATH=%%~dpF
FOR %%F IN (%UNENCRYPTED%) DO SET FILENAME=%%~nxF
cd %FILE_PATH%
TAR -xf %FILENAME%

我首先尝试剥离 filename.backup.zip.aes 的最后一个扩展名,这样我就可以通过这样做来解压缩它:

FOR %%F IN (%FILENAME%) DO SET UNENCRYPTED=%%~dpnF
TAR -xf %UNENCRYPTED%

然后我尝试解压它,但没有成功。

之后,我尝试将 .zip 扩展名从 UNENCRYPTED 中取出,然后将其重新放入 tar 命令中,如下所示:

FOR %%F IN (%FILENAME%) DO SET UNENCRYPTED=%%~dpnF
FOR %%F IN (%UNENCRYPTED%) DO SET NOEXTENSION=%%~dpnF
TAR -xf %NOEXTENSION%.zip

但我得到了相同的结果。

最后我决定再次提示用户输入不带最后一个扩展名的文件路径,如当前代码所示,但它也不起作用。如果有人能指出我的问题,我将不胜感激。

batch-file command-prompt tar unzip
1个回答
0
投票

Windows 10/11

Tar
允许非加密的 zip,您可以像文件夹一样打包、列出、解包和浏览它们。但只能使用资源管理器解压密码加密的 zip。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.