如何通过文件传递参数tortoiseproc.exe?

时间:2011-04-17 15:35:09

标签: file command-line parameters tortoisesvn

我正在以编程方式使用java中的Runtime.getRuntime.exec()生成要提交给cmd.exe的命令。

命令是tortoiseproc ignore形式的命令

tortoiseproc /command:ignore /path:file1*file2*file3*...................filen

正如您所看到的,path参数需要大量文件,当此字符串超过某个长度时会出现问题。 cmd.exe的Microsoft KB中记录的8197个字符。

那里的解决方法是修改程序,使其接受文件而不是命令行字符串中的参数。有人知道如何通过文件将参数传递给tortoiseproc.exe吗?

3 个答案:

答案 0 :(得分:1)

您可以传递utf16格式的文件,每个文件都单独列出。

使用/pathfile:"path/to/file.txt"

将路径传递给该文件

答案 1 :(得分:0)

不,那是不可能的。但是,在这种特定情况中,无关紧要:您可以将文件列表拆分为多个较小的文件列表,并多次运行tortoiseproc。例如:

tortoiseproc /command:ignore /path:file1*file2*file3*file4
tortoiseproc /command:ignore /path:file5*file6*file7*file8

依此类推,直至文件 n

答案 2 :(得分:0)

我有同样的问题,这是我的解决方案:

using (var s = File.Create("D:\\p3.tmp"))
{
    using (var sw = new StreamWriter(s, new UnicodeEncoding(false, false)))
    {
        sw.Write(@"D:\SourceCode\Utils\ProductProvider.cs" + '\n');
        sw.Write(@"D:\SourceCode\Utils\BillingProvider.cs"+ '\n');
    }
}

创建文件后我使用

TortoiseProc.exe /command:commit /pathfile:"D:\p3.tmp" /logmsg:"test log message" /deletepathfile