我正在尝试在C#中创建一个与众所周知的echo命令相似的程序。除非我尝试打印带引号的字符串,否则一切正常。
例如,在echo命令中键入:
echo "Hello, world!"
你得到输出:
"Hello, world"
但是当我运行我的程序时,我得到了:
Hello, world!
这是代码:
using System;
namespace CSharpEcho
{
public class Echo
{
public static void Main(String[] argv)
{
Int32 ArgsLength = argv.Length;
if(ArgsLength == 0)
Console.WriteLine("You have to write something!");
else
{
String Str = "";
foreach(String args in argv)
{
Str += args + " ";
}
Console.WriteLine(String.Format("{0}", Str));
}
}
}
}
答案 0 :(得分:7)
Environment.CommandLine包含确切的命令行内容。
所以你的代码可以是:
public static void Main(String[] argv)
{
Console.WriteLine(Environment.CommandLine);
}
答案 1 :(得分:0)
字符串中的双引号字符有点棘手。试试这个:
Console.WriteLine(String.Format(@"""{0}""", Str));
@符号使字符串成为字符串文字,这意味着没有“转义”字符。外部双引号是字符串周围的正常引号,内部双引号双引号是实际引号字符。
答案 2 :(得分:0)
如果您希望输出为“ Hello,world”。您可以使用以下内容:
var text = "\"Hello, World\"";