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

本文关键字:unar rar 参数 何使用 命令行 | 更新日期: 2023-09-27 18:01:48

我已经通过互联网查看了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

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

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

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

这当然是错误的,因为您不想运行WinRAR.exe,第一个参数是对控制台版本Rar.exeUnRAR.exe的引用。结果很可能是一个错误消息,因为无效的命令rar分别unrar作为第一个参数必须是axWinRAR.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时,简要解释了控制台版本Rar.exe的所有命令和开关。如果执行UnRAR.exe时不带任何参数,则输出一个简短的帮助。

最后但并非最不重要的是,Rar.exe有一个完整的手册,当然也可以从RAR存档中提取文件和文件夹,这使得UnRAR.exe的额外使用毫无用处。本手册是WinRAR的program files文件夹中的Rar.txt文本文件,您应该从上到下阅读。我建议在读取命令行时构建命令行,并首先在命令提示符窗口内测试命令行。

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

注2:GUI版本WinRAR.exe比控制台版本Rar.exe支持更多的开关,因此开关列表略有不同。WinRAR.exe的完整文档可以在WinRAR的帮助中找到,使用 help - help Topics或按F1键打开。在标签Contents的帮助中打开项命令行模式并读取。WinRAR.exe也是共享软件

需要对文件数据和文件头进行加密。

根据文档(命令行模式> Switches> "-hp[pwd] -加密文件数据和文件头"):

这个开关类似于-p[p],但是-p开关只加密文件数据并使文件名等其他信息可见。这个开关加密所有敏感存档区域,包括文件数据、文件名、大小,属性,注释等块,所以它提供了一个更高安全级别。

你可以使用命令行访问它:

语法: rar a -hp[MyPassword] -r [filepath] [folderpath]

"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();
}