如何使用命令行参数 rar/unrar

How to rar/unrar with command line parameters

我通过互联网查看了 winrar 的命令行参数是如何工作的,这就是我目前所了解的

        void LOCK(string fld, string pw)
    {
        Process p = new Process();
        p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
        p.StartInfo.Arguments = "rar a -p" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
        p.Start();
    }

    void UNLOCK(string fld, string pw)
    {
        Process p = new Process();
        p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
        p.StartInfo.Arguments = "unrar x -p" + pw + " PL_LOCKED_ARCHIVE.rar";
        p.Start();
    }

但是它似乎没有在任何地方创建任何存档,测试文件夹是 C:\PicsAndStuff

您需要加密文件数据和 headers。

根据Documentation (命令行模式>开关>“-hp[pwd] - 加密文件数据和headers”):

This switch is similar to -p[p], but switch -p encrypts only file data and leaves other information like file names visible. This switch encrypts all sensitive archive areas including file data, file names, sizes, attributes, comments and other blocks, so it provides a higher security level.

这是使用命令行访问它的方法:

语法: rar a -hp[我的密码] -r [文件路径] [文件夹路径]

"C:\Program Files\WinRAR\WinRAR.exe" a -hp12345678 -r d:\zipProject d:\Project

C#代码:

void LOCK(string fld, string pw)
{
    Process p = new Process();
    p.StartInfo.FileName = @"C:\Program Files\WinRAR\WinRAR.exe";
    p.StartInfo.Arguments = "rar a -hp" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
    p.Start();
}

您在 运行ning WinRAR.exe 中使用命令行定义的 StartInfo 结果:

C:\Program Files\WinRAR\WinRAR.exe unrar x -p pw PL_LOCKED_ARCHIVE.rar

这当然是错误的,因为您不想 运行 WinRAR.exe 第一个参数是对控制台版本 Rar.exeUnRAR.exe 的引用。结果很可能是一条错误消息,因为命令 rarunrar 无效,因为第一个参数必须是 ax for WinRAR.exe.

所以首先你需要更正StartInfo:

void LOCK(string fld, string pw)
{
    Process p = new Process();
    p.StartInfo.FileName = @"C:\Program Files\WinRAR\Rar.exe";
    p.StartInfo.Arguments = "a -p" + pw + " PL_LOCKED_ARCHIVE.rar " + fld;
    p.Start();
}

void UNLOCK(string fld, string pw)
{
    Process p = new Process();
    p.StartInfo.FileName = @"C:\Program Files\WinRAR\UnRAR.exe";
    p.StartInfo.Arguments = "x -p" + pw + " PL_LOCKED_ARCHIVE.rar";
    p.Start();
}

此外,控制台版本 Rar.exe 的所有命令和开关在命令提示符 window 中简单地 运行 宁 Rar.exe 没有任何参数时进行了简要说明。如果不带任何参数执行,UnRAR.exe 也会输出一个简短的帮助。

最后但同样重要的是 Rar.exe 有一个完整的手册,它当然也可以从 RAR 压缩包中提取文件和文件夹,这使得 UnRAR.exe 的额外使用变得毫无用处。该手册是 WinRAR 程序文件文件夹中的文本文件 Rar.txt,您应该从上到下阅读。我建议在阅读命令行时构建命令行,并首先在命令提示符 window.

中测试命令行

注1: Rar.exe 是共享软件。只有 UnRAR.exe 是免费软件。

注2: GUI 版本 WinRAR.exe 比控制台版本 Rar.exe 支持更多,因此开关列表略有不同。 WinRAR.exe 的完整文档可以在 WinRAR 的帮助中找到,使用 帮助 - 帮助主题 或按 F1 打开。在 Contents 选项卡的帮助中打开项目 Command line mode 并阅读。 WinRAR.exe 也是共享软件。