c#控制台应用程序使用命令行,命令不执行

本文关键字:命令 执行 命令行 控制台 应用程序 | 更新日期: 2023-09-27 18:17:57

我正在使用控制台应用程序和c#来执行一些AWS (S3) CLI命令。我认为我已经使它工作了,因为大多数命令执行得很好。但是最后一个命令是sync,它不起作用。但我知道命令本身是正确的,因为复制粘贴到命令行窗口中工作得很好。下面是我到目前为止写的:

String commands = "echo echo & echo echo"; 
commands += " & aws s3 ls s3://bbbbbb";
commands += " & aws s3 sync C:'test'test2 s3://bbbbbb"; //this is the line that doesn't execute
//make this to use with a Process
ProcessStartInfo commandsToRun = new ProcessStartInfo("cmd", @"/c " + commands);
//make the Process and run it
Process process = new Process();
process.StartInfo = commandsToRun;
process.Start();

我没有任何错误或任何线索,关于发生了什么,我只是没有得到最后一个命令的输出,如果我检查ls或Cloudberry Explorer,我可以看到什么都没有发生。有人能告诉我这是怎么回事吗?谢谢!

c#控制台应用程序使用命令行,命令不执行

如果你的例子是你真正使用的,我会责怪c#字符串转义。路径中的"'t"将转换为水平制表符。使用逐字字符串(就像在ProcessStartInfo中所做的那样)

commands += @" & aws s3 sync C:'test'test2 s3://bbbbbb";
或者转义反斜杠
commands += " & aws s3 sync C:''test''test2 s3://bbbbbb";