命令提示符-批处理文件-BAT文件

时间:2018-08-23 14:38:17

标签: batch-file encryption cmd command-prompt

我想编写一个批处理文件,以便解密给定文件夹中的所有文件,即指定目录中的FOR EACH文件运行我在下面编写的命令,同时使用用于输入和输出文件名的当前文件名

gpg --passphrase "MYPASS52381" -d -o "E:\filename.txt.PGP" "E:\filename.txt"

enter image description here

1 个答案:

答案 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的驱动器,路径和名称,但不包括文件扩展名。