当我用它打开文件时,批处理脚本不起作用

时间:2018-02-19 04:08:03

标签: windows batch-file

我决定制作一个使用OpenSSL的AES-256-CBC加密文件的批处理文件。

我这样做是为了第一个参数是要加密的文件路径。

批处理文件然后复制文件并对其进行加密,并将扩展名“.encw”添加到其名称中。

这是脚本:

echo off
set file=%1
echo s
echo %file%
echo e
if [%1]==[] (
    echo Missing file parameter.
    exit /B
)
if exist %file% (
    echo %file%
    for %%a in (%file%) do set "p_dir=%%~dpa"
    for %%F in (%file%) do set "fname=%%~nxF"
    echo %p_dir%
    echo %fname%
    set encfile="%p_dir%%fname%.enc"
    echo openssl aes-256-cbc -a -salt -in %file% -out %encfile%
    echo %encfile%
) else (
echo File does not exist.
)
pause

当您打开命令提示符并输入批处理文件的路径和要加密的文件的路径时,此方法有效。

Here's the output

但是当有人用它打开该文件(将文件拖到文件资源管理器中的批处理中)时,由于某些原因,父文件和创建的.enc副本不会被创建文件名是空白的

Here's the output

为什么会这样?

我这样做是为了打印OpenSSL命令而不是执行它来避免问题。

0 个答案:

没有答案