批处理文件 – 批处理脚本GPG解密
我正在尝试编写批处理文件来解密全部使用相同公钥加密的.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用于临时操纵到另一个目录; >你不能像你在namelen-4那样尝试在线数学(你需要使用一个临时变量和SET / A进行算术运算,然后delayed expansion必须是活动的); 加成: gpg --output "%%~nF" --batch --yes --passphrase %password% --decrypt "%%~F" ?修饰符删除潜在的周围双引号,因此“%% ~nF”和“%% ~F”始终用双引号括起文件名.请注意,“%% F”可能无意中导致双重双引号… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |