如何使用 Rar.exe 更改文件夹结构

如何使用 Rar.exe 更改文件夹结构

我正在用代码构建一个 rar 命令。我在数据库调用中获取共享和文件夹 (\\BUServer1\Share01$\IHDEV01),然后我得到了想要存档的子文件夹和扩展名的列表(平面文件*.dbf”)我将两者连接起来,如下面的命令所示。

我之所以指出这一点,是因为我是使用未知值即时构建的。我的问题是,当打开存档时,IHDEV01 文件夹位于存档顶部,其他所有内容都包含在其中(见下图)。我的要求是保持所有内容原样,但将 IHDEV01 从存档顶部移除。我尝试传递 -ep1 作为命令参数,这确实会删除 IHDEV01 文件夹,但它也会删除 IHDEV01 下面的文件夹结构。我考虑过将共享和文件夹映射到字母,但执行这些存档作业的过程可能会在不同的客户上被调用多次。有没有我没有看到的简单解决方案?

rar.exe a -r -ed  -s -sfx "C:\Sigma\Applications\Development\ BackupService\1.0.4016\bin\Data\IHDEV01\IHDEV01_DatabaseFiles" -hpmypassword -v2048m "\\BUServer1\SHARE01$\IHDEV01\FLATFILES\*.dbf" 
"\\BUServer1\SHARE01$\IHDEV01\FLATFILES\ASMAIL*.*" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\comm\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\Forms\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\Integ\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\PCX\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\Txt\*.ids" 
"\\BUServer1\SHARE01$\IHDEV01\APPS\mvr\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\log\*.log" 
"\\BUServer1\SHARE01$\IHDEV01\dat\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\wintam\winrpts\*.fxp" 
"\\BUServer1\SHARE01$\IHDEV01\misc\winrpts\*.prg" 
"\\BUServer1\SHARE01$\IHDEV01\as_flags\*.*" 
"\\BUServer1\SHARE01$\IHDEV01\as_desk\*.*"

在此处输入图片描述

答案1

我建议使用开关-ep1删除基本目录路径\\BUServer1\SHARE01$\IHDEV01\FLATFILES\,并使用开关-apFLATFILES将此目录路径添加到压缩到 SFX 档案文件中的每个文件中。

因此命令行是:

rar.exe a -apFLATFILES -ed -ep1 -hpmypassword -r -s -sfx -v2048m "C:\Sigma\Applications\Development\BackupService\1.0.4016\bin\Data\IHDEV01\IHDEV01_DatabaseFiles" "\\BUServer1\SHARE01$\IHDEV01\FLATFILES\*.dbf"

例子:

该目录\\BUServer1\SHARE01$\IHDEV01\FLATFILES包含:

  • 子目录 1
    • 子文件夹 1
      • 文件_1-1.dbf
    • 子文件夹 2
      • 文件_1_2.dbf
    • 文件_1.dbf
  • 子目录 2
    • 文件_2.dbf
  • 文件.dbf

C:\Sigma\Applications\Development\BackupService\1.0.4016\bin\Data\IHDEV01\IHDEV01_DatabaseFiles.exe在这种情况下,创建的 RAR SFX 存档文件包含:

FLATFILES\File.dbf
FLATFILES\Subdirectory 1\Subfolder 1\File_1-1.dbf
FLATFILES\Subdirectory 1\Subfolder 2\File_1-2.dbf
FLATFILES\Subdirectory 1\File_1.dbf
FLATFILES\Subdirectory 2\File_2.dbf

相关内容