运行 具有不同工作目录和输入重定向的 Scala 进程
Run a process on Scala with a different working directory and input redirect
似乎不可能 运行 在 Scala 上使用另一个工作目录和输入重定向的进程。
这就是我通常 运行 在 Scala 上使用默认目录的进程的方式:
Process(cmd, new File("someDir")).!!
这就是我通常 运行 使用输入重定向的 Scala 进程的方式:
("someCmd -someParam" #< "myFile.txt").!!
这两者好像没法结合..
我错过了什么吗?
#<
是 ProcessBuilder
上的一个方法,所以你可以调用:
(Process("someCmd -someParam", new File("someDir")) #< new File("myFile.txt")).!!
请注意,您作为输入传递的 File
必须相对于 Scala 进程的工作目录指定。但是,如果您将文件路径作为参数传递给命令,则该路径必须相对于命令的工作目录。
因此,对于 someDir
中的 myFile.txt
,调用可能如下所示:
(Process("someCmd -someParam", new File("someDir")) #< new File("someDir/myFile.txt")).!!
但是,
Process("cat myFile.txt", new File("someDir")).!!
似乎不可能 运行 在 Scala 上使用另一个工作目录和输入重定向的进程。
这就是我通常 运行 在 Scala 上使用默认目录的进程的方式:
Process(cmd, new File("someDir")).!!
这就是我通常 运行 使用输入重定向的 Scala 进程的方式:
("someCmd -someParam" #< "myFile.txt").!!
这两者好像没法结合..
我错过了什么吗?
#<
是 ProcessBuilder
上的一个方法,所以你可以调用:
(Process("someCmd -someParam", new File("someDir")) #< new File("myFile.txt")).!!
请注意,您作为输入传递的 File
必须相对于 Scala 进程的工作目录指定。但是,如果您将文件路径作为参数传递给命令,则该路径必须相对于命令的工作目录。
因此,对于 someDir
中的 myFile.txt
,调用可能如下所示:
(Process("someCmd -someParam", new File("someDir")) #< new File("someDir/myFile.txt")).!!
但是,
Process("cat myFile.txt", new File("someDir")).!!