如何使用命令行参数 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.exe
或 UnRAR.exe
的引用。结果很可能是一条错误消息,因为命令 rar
和 unrar
无效,因为第一个参数必须是 a
或 x
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
也是共享软件。
我通过互联网查看了 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.exe
或 UnRAR.exe
的引用。结果很可能是一条错误消息,因为命令 rar
和 unrar
无效,因为第一个参数必须是 a
或 x
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
也是共享软件。