scala - 使用不同的工作目录和输入重定向在 Scala 上运行进程
问题描述
似乎不可能使用另一个工作目录和输入重定向在 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 进程的工作目录进行指定。但是,如果您将文件路径作为参数传递给命令,则路径必须相对于命令的工作目录。
因此,对于myFile.txt
inside someDir
,调用可能如下所示:
(Process("someCmd -someParam", new File("someDir")) #< new File("someDir/myFile.txt")).!!
但,
Process("cat myFile.txt", new File("someDir")).!!
推荐阅读
- c# - 有没有比 FileStream.WriteByte() 方法更快的替代方法或任何方法来加速 C# 中的 FileStream.WriteByte()?
- templates - Docusign Template 中自定义字段的动态值作为 HTML
- python - 仅使用来自 csv 文件的每门课程的基本 python 计数学生(除了 python 之外没有其他字典)
- c++ - 使用 init_from_source 时的 Boost.Log 链接器错误
- sql-server - 在存储过程中嵌套 if 语句
- rest - 如何将 GCP 数据库与 App 引擎 (Flex) 服务 (API .NET) 结合使用
- java - 如何在 Java 中使用 OpenCV Imgproc.HoughLines?
- ios - Xcode 添加多个字符串消息体
- javascript - SignalR 多客户端事件处理
- android - 当我增加图标大小时,侧边栏菜单图标被修剪