C++ 批处理文件搜索然后加密

C++ 批处理文件搜索然后加密,c++,batch-file,encryption,C++,Batch File,Encryption,我目前正在尝试加密我服务器上的一些文件,我下载了aescrypt,我可以用以下命令加密单个文件 aescrypt -e -p apples picture.jpg 不过,我希望能够编写一个批处理文件,它将查看特定文件夹中的文件,并分别对它们进行加密 我知道如何使用CMD扫描文件 dir /S C:\work\*.docx > c:\report.txt 有人能告诉我如何用我的加密机使用存储的文件名吗 i、 e.读取report.txt,然后使用report.txt中的文件名对其进行加密

我目前正在尝试加密我服务器上的一些文件,我下载了aescrypt,我可以用以下命令加密单个文件

aescrypt -e -p apples picture.jpg
不过,我希望能够编写一个批处理文件,它将查看特定文件夹中的文件,并分别对它们进行加密

我知道如何使用CMD扫描文件

dir /S C:\work\*.docx > c:\report.txt
有人能告诉我如何用我的加密机使用存储的文件名吗

i、 e.读取report.txt,然后使用report.txt中的文件名对其进行加密

i、 e.报告中是否包含以下内容

work1.docx
work2.docx
work3.docx
work4.docx
然后,批处理文件将生成以下内容

aescrypt -e -p apples work1.docx
aescrypt -e -p apples work2.docx
aescrypt -e -p apples work3.docx
aescrypt -e -p apples work4.docx
然后删除原件

work1.docx
work2.docx
work3.docx
work4.docx
我相信这真的很简单,但我是新手,仍在努力学习,所以任何建议都将不胜感激


我很乐意使用批处理文件或C++

如果您可以使用批处理文件,您可以尝试搜索文件夹中的所有文件并对其进行加密/解密

要加密并删除原件,可以在Encrypt.bat中运行以下批处理命令:

FOR %%G IN ("C:\work\*.docx") DO aescrypt -e -p apples "%%G"
FOR %%G IN ("C:\work\*.docx") DO DEL "%%G"
FOR %%G IN ("C:\work\*.aes") DO aescrypt -d -p apples "%%G"
然后,您可以通过在Decrypt.bat中运行以下批处理命令对其进行解密:

FOR %%G IN ("C:\work\*.docx") DO aescrypt -e -p apples "%%G"
FOR %%G IN ("C:\work\*.docx") DO DEL "%%G"
FOR %%G IN ("C:\work\*.aes") DO aescrypt -d -p apples "%%G"
希望有帮助

编辑:

这里有一个更新,您可以搜索子文件夹。如果使用C:\work\,则应加密/解密该文件夹中的任何.docx文件以及子文件夹中的任何文件

加密:

FOR /R "C:\work\" %%G IN (*.docx) DO aescrypt -e -p apples "%%G"
FOR /R "C:\work\" %%G IN (*.docx) DO DEL "%%G"
解密:

FOR /R "C:\work\" %%G IN (*.aes) DO aescrypt -d -p apples "%%G"

另外请注意,我在上面的答案中修正了一个拼写错误。命令末尾的%%G参数需要用“%%G”之类的语音标记括起来,否则如果文件名中有空格,命令将失败

你能澄清一下你想要哪种语言吗?您的帖子表示C++,但您用C++标记了它。你有偏好吗?我不想弄懂什么是诚实的语言,我宁愿C++或甚至批处理文件,这是好的,但是,有没有一种方法来扫描在C:\Work中的所有目录,因为可能有60个文件夹用于不同的部门。我刚刚用一些更新的命令修改了我的答案。Sorryu我的最后一个问题是,如果我想加密超过1个文件类型,我可以使用**还是*?ThanksI不建议使用**因为这可能会尝试加密一些你不想接触的文件。相反,您可以通过用空格分隔文件格式来手动指定任意数量的文件格式。例如,这应该有效:。。。在(*.txt*.pdf*.docx*.rtf*.etc)中执行。。。