在批处理文件的输出文件上保持相同的文件名

Keep the same file name on output file on a batch file

我目前正在做一个 encrypting/decrypting 自动化项目,我需要为任务调度程序创建批处理文件

我遇到了解密命令的问题

 --passphrase "password" --batch -d --output ".JOAARPT.out" "*.JOAARPT"

该命令解密所有 JOAARPT 文件并将输出文件更改为 JOAARPT.out 但我无法使创建的解密文件与源文件保持相同的名称

我应该使用什么通配符?

cmd.exe 中需要一个 FOR 循环。是的,这很尴尬,但事实就是如此。使用 FOR /? 命令了解所有相关信息。

FOR /F "delims=" %%A IN ('DIR /B "*.JOAARPT"') DO (
    decry.exe --passphrase "password" --batch -d --output "%%~nA.JOAARPT.out" "%%~A"
)

如果您想升级到 PowerShell,您可以:

Get-ChildItem -File -Filter "*.JOAARPT" |
    ForEach-Object {
        & decry.exe --passphrase "password" --batch -d --output $($_.BaseName + '.JOAARPT.out') "$_.FullName"
    }