我想编写一个批处理文件,以便解密给定文件夹中的所有文件,即指定目录中的FOR EACH文件运行我在下面编写的命令,同时使用用于输入和输出文件名的当前文件名
gpg --passphrase "MYPASS52381" -d -o "E:\filename.txt.PGP" "E:\filename.txt"
答案 0 :(得分:2)
最好是从批处理文件进入for循环:
@echo off
for %%i in (*.PGP) do gpg --passphrase "MYPASS52381" -d -o "%%~fi" "%%~dpni"
来自cmdline:
for %i in (*.PGP) do gpg --passphrase "MYPASS52381" -d -o "%~fi" "%~dpni"
打开命令提示符(cmd.exe
),运行for /?
,您将在其中看到变量引用:
您现在可以使用以下可选语法(注意,我已将变量更改为小写,以反映您的情况):
%~i - expands %i removing any surrounding quotes (")
%~fi - expands %i to a fully qualified path name
%~di - expands %i to a drive letter only
%~pi - expands %i to a path only
%~ni - expands %i to a file name only
%~xi - expands %i to a file extension only
%~si - expanded path contains short names only
%~ai - expands %i to file attributes of file
%~ti - expands %i to date/time of file
%~zi - expands %i to size of file
换句话说,在这种情况下,%%~dpni
扩展为%%i
的驱动器,路径和名称,但不包括文件扩展名。