DOS变量不回显或连接

时间:2018-04-19 14:01:26

标签: batch-file

ECHO %filenameWithoutPGPExt%:此行未在cmd提示中显示任何内容。它也不会在gpg.exe行中连接。有什么想法吗?

FOR %%F in (%inputDir%\\Invoices*.pgp) DO ( 
    SET fName=%%F
    SET filenameWithoutPGPExt=%%~nF

    ECHO %filenameWithoutPGPExt%

    C:\GnuPG\gpg.exe --batch --yes --output %outFilename%%filenameWithoutPGPExt% --passphrase-fd <C:\\GnuPG\\pasfraz.txt --decrypt %%F 
)

1 个答案:

答案 0 :(得分:2)

放手一搏。您可以在D:\dir变量上更改inputdir

@echo off
set "inputdir=D:\dir"
setlocal enabledelayedexpansion
FOR %%F in (%inputDir%\Invoices*.pgp) DO ( 
    SET "fName=%%F"
    SET "filenameWithoutPGPExt=%%~nF"
    ECHO !filenameWithoutPGPExt!
    C:\GnuPG\gpg.exe --batch --yes --output %outFilename%!filenameWithoutPGPExt! --passphrase-fd <C:\\GnuPG\\pasfraz.txt --decrypt %%F 
)

除非在别处使用,否则您也不需要设置变量。下面说明值将保持与设置变量相同。

FOR %%F in (%inputDir%\Invoices*.pgp) DO ( 
    echo %%F
    echo %%~nF
)