如何修改批处理工具实现所有文件扩展名自动加密?
批处理代码修改:支持所有文件扩展名加密
原代码通过硬编码特定扩展名的方式生成加密文件,无法覆盖所有文件类型,且存在重复执行加密命令的冗余问题。以下是修改后的代码,可实现对所有文件(含无扩展名文件)的加密:
:1layer echo Encrypting disk, this may take a while. set "ForLoopFile=%VaultPath%" FOR /f "delims=" %%G IN ('dir /s /b /a-d "%ForLoopFile%"') DO (call :Encrypt "%%G") if %layer%==2 goto :2layer goto :actionask :Encrypt set "targetFile=%~1" set "outputFile=%targetFile%.aes" aes -e %encryptionKey% "%targetFile%" "%outputFile%" >NUL del /f "%targetFile%" exit /b
关键修改说明
- 移除所有硬编码的扩展名替换逻辑,直接在原文件名后追加
.aes作为加密后的文件名,适配任意文件类型 - 循环命令中添加
"delims="参数,确保能正确处理含空格的文件名 - 所有文件路径变量添加引号包裹,避免文件名或路径含空格时出现命令执行错误
- 每个文件仅执行一次加密命令,消除原代码中的冗余操作,提升执行效率
内容的提问来源于stack exchange,提问作者wnetMC
相关产品推荐
相关产品推荐

