【问题标题】:Piping data on Windows command prompt在 Windows 命令提示符下管道数据
【发布时间】:2010-10-22 18:51:48
【问题描述】:

我需要获得一个大型 (~8gb) svn 存储库的备份转储。我目前的方法是使用svnadmin dump 到一个文件,然后使用 7-Zip 压缩和拆分文件。

> svnadmin dump c:\path\to\myrepo > c:\svndump.svn
> 7z svndump.svn svndump.7z      // or whatever the correct syntax is

我想知道是否有一种方法可以跳过这里的中间人,并通过使用管道或其他方式一次性压缩 svn 转储数据?这可能吗?语法是什么?

【问题讨论】:

  • 对接近投票的回应:好的,是的,不直接与编程相关,但切线如此。加上它有一个明确和权威的答案,所以我认为它适合 Stack Overflow。
  • 它的主题 - 它与编程相关工具的有效使用有关

标签: svn command-line backup svnadmin


【解决方案1】:

【讨论】:

  • Bleh,你比我快 10 秒左右。 :)
【解决方案2】:

因为您的示例正是我所寻找的,所以这就是我作为“转储”我所有存储库的完整解决方案所做的。 该解决方案将所有 svn 存储库转储到 7-zip 文件,而无需未压缩的中间文件。

将该批处理文件放在您的“存储库根目录”中,例如m:\repositories\dump-all.bat

pushd %~dp0
SET SEVENZIP="c:\Program Files\7-Zip\7z.exe" a -mx1 -si 
FOR /f "tokens=*" %%i in ('DIR /a:d /b') DO svnadmin dump %%i | %SEVENZIP% ..\_svndump\%%i.dump.7z

而且,如果您需要以低优先级运行它,像这样启动该批处理,这两个进程(7z + svnadmin)都将占用大量 cpu

start /low m:\repositories\dump-all.bat

注意:“pushd %~dp0”将“当前目录”设置为批处理文件所在的位置,而不是在“c:\windows\system32”中启动它,如果您从资源管理器中以“以管理员身份运行”启动它。如果工作文件夹在另一个驱动器上,它也可以工作。
无需键入“m:”和“cd \repositories”。如果你从“c:”驱动器启动它。

【讨论】:

    猜你喜欢
    • 2012-07-07
    • 2019-01-26
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 2013-04-19
    • 2013-06-21
    相关资源
    最近更新 更多