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

C#控制台应用程序使用命令行,命令不执行,c#,command-line,amazon-s3,console-application,command-line-interface,C#,Command Line,Amazon S3,Console Application,Command Line Interface,我使用控制台应用程序和C#来执行一些AWS(S3)CLI命令。我想我已经让它工作了,因为大多数命令执行得很好。但是最后一个命令是sync,它不起作用。但我知道命令本身是正确的,因为复制粘贴到命令行窗口中效果很好。以下是我目前的情况: String commands = "echo echo & echo echo"; commands += " & aws s3 ls s3://bbbbbb"; commands += " & aws s3 sync C:\test\t

我使用控制台应用程序和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#字符串转义<路径中的代码>“\t”将转换为水平选项卡。使用逐字字符串(就像您在
ProcessStartInfo
中所做的那样)

或者逃避反斜杠

commands += " & aws s3 sync C:\\test\\test2 s3://bbbbbb";

命令的工作目录重要吗?是一个命令,还是几个命令?你需要插入一些换行符吗?工作目录应该不重要,因为给定的路径名是绝对的。有几个,但我不知道我需要换行符。没有它们,
echo
命令和
ls
都可以正常工作。哦!我从来没有想过要逃走。这就是我真正使用的,所以
@
解决了这个问题。非常感谢。
commands += " & aws s3 sync C:\\test\\test2 s3://bbbbbb";