我正在编写一个批处理文件,用于加密/压缩和解密/解压缩文件。当用户选择解密/解压缩时,程序会解密它,但不会解压缩它,我不明白为什么。
这是有问题的部分:
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
但我得到了相同的结果。
最后我决定再次提示用户输入不带最后一个扩展名的文件路径,如当前代码所示,但它也不起作用。如果有人能指出我的问题,我将不胜感激。