大佬教程收集整理的这篇文章主要介绍了批处理文件 – 批处理脚本GPG解密,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@ECHO off SET outbound=C:\encrypted files SET olddir=%CD% SET password=correcthorsebatterystaple CD /d %outbound% DIR *.gpg /B > tmp.txt FOR /F "tokens=*" %%F IN (tmp.txt) DO ( ECHO %%F > tmplen.txt FOR %%L IN (tmplen.txt) DO (SET namelen=%%~zL) DEL tmplen.txt gpg --output %%F:~0,namelen-4 --batch --yes --passphrase %password% --decrypt %%F) DEL tmp.txt CD /d %olddir%
目前它只是打印
usage: gpg [options] [filename]
这是我第一次尝试编写Batch脚本,所以我确信这很简单.
@ECHO off SET password=correcthorsebatterystaple PUSHD "C:\encrypted files" FOR /F "tokens=*" %%F IN ('DIR *.gpg /B') DO ( gpg --output %%~nF --batch --yes --passphrase %password% --decrypt %%F) POPD
说明:
> PUSHD和POPD用于临时操纵到另一个目录;
>不存在保存DIR输出所需的临时文本文件,因为FOR也能够解析命令的输出(IN()中的集合用”括起来,因此它被解释为命令,而不是文件规格).
>截断文件扩展名(你想用第二个临时文件和内部FOR循环做什么,至少根据我的解释),你只需要给出修饰符~n,在我们的情况下%% ~nF;你的方法不起作用,因为:
>你不能像你在Namelen-4那样尝试在线数学(你需要使用一个临时变量和SET / A进行算术运算,然后delayed expansion必须是活动的);
>子字符串扩展如:~0,8不适用于FOR变量(你需要一个临时变量才能做到这一点,然后delayed expansion必须再次激活);
加成:
如果脚本输入文件名中有空格问题,您可能需要用以下命令交换gpg命令行:
gpg --output "%%~nF" --batch --yes --passphrase %password% --decrypt "%%~F"
〜修饰符删除潜在的周围双引号,因此“%% ~nF”和“%% ~F”始终用双引号括起文件名.请注意,“%% F”可能无意中导致双重双引号…
以上是大佬教程为你收集整理的批处理文件 – 批处理脚本GPG解密全部内容,希望文章能够帮你解决批处理文件 – 批处理脚本GPG解密所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。