我正在尝试写一个Rust程序,它使用Command
来复制Docker容器中的一些文件。代码如下所示:
Command::new("cmd").arg("/C")
.arg(&format!("docker cp {file_name} {container}:/home/", container=&container_name, file_name=&source_file))
.spawn()
.expect("command failed")
变量source_file
是一个文件的绝对路径,container_name
是容器的名称,问题是这段代码在所有情况下都能正常工作,除了路径上有空格的情况。
例如输入:-
let source_file = "C:\Program Files (x86)\Microsoft Visual Studio\2021\file";
在使用上面的输入运行程序时,我在终端上得到以下消息,并且文件没有被复制到容器中。
`"docker cp" requires exactly 2 arguments`.
有没有办法修改输入端的输入文件路径,使docker cp通过上面的程序在Windows中接受文件路径中的空格?
1条答案
按热度按时间4xrmg8kj1#
如果不通过
cmd
传递,它相对简单,因为cmd
没有做什么,而且会使事情变得复杂: