带有 Powershell 和用于加密的通配符的 GnuPG

GnuPG with Powershell and wildcard for encrypting

我正在尝试使用通配符 *.txt 加密特定文件夹中的所有 TXT 文件。当我 运行 管理员权限中的 PowerShell 代码时,我收到此错误消息。

set-alias sz "$env:C:\Program Files (x86)\GNU\GnuPG\gpg.exe"  
sz --encrypt --recipient "AABB (2048-bit)" "C:\Users\AA\Desktop\AABB_Test\*.txt" 

错误:

**sz : gpg: can't open `C:\Users\AA\Desktop\AABB_Test\*.txt': No such file or directory**

但是如果我只选择其中一个 txt 文件:

set-alias sz "$env:C:\Program Files (x86)\GNU\GnuPG\gpg.exe"  
sz --encrypt --recipient "AABB (2048-bit)" "C:\Users\AA\Desktop\AABB_Test_test_file.txt" 

它工作正常。

下面的代码应该会产生您想要的结果。

Set-Alias sz "$Env:SystemDrive\Program Files (x86)\GNU\GnuPG\gpg.exe"  
$dirWithFiles = "$Env:SystemDrive\Users\AA\Desktop\AABB_Test"

Get-ChildItem -Path $dirWithFiles | ForEach-Object {
    sz --encrypt --recipient "AABB (2048-bit)" "$($_.FullName)"
}

在bash中,shell解释通配符。在 cmd 或 powershell 中,每个命令都使用库解释通配符。