C# 在字符串中传递引号

本文关键字:字符串 | 更新日期: 2023-09-27 18:35:40

我正在尝试在字符串中传递引号。我很难制定代码。

path = path.Insert(0, @"''ffusvintranet02'picfiles'temp'");
string format = "Set-UserPhoto ";
format += "" + user + "";
format += " -PictureData ([System.IO.File]::ReadAllBytes(";
format += "" + path + @"";
format += ")";

用户和路径是 AD 命令的单引号内的变量。 命令。我所拥有的不起作用。

C# 在字符串中传递引号

"符号的用户'"'''

format += "'"" + user + "'"";

首先,使用string.format来完成这样的任务。其次,您必须转义引号(但您不需要转义单引号)。

双引号

可以通过双引号或反斜杠进行转义,具体取决于您使用的字符串文本类型:

var s = @"something "" somethin else ";  // double double quote here
var s2 = "something '" somethin else ";

现在,使用 string.format ,您的代码将变成:

 path = path.Insert(0, @"''ffusvintranet02'picfiles'temp'");
 string format = string.format("Set-UserPhoto {0} -PictureData ([System.IO.File]::ReadAllBytes('"{1}'")", user, path);

 path = path.Insert(0, @"''ffusvintranet02'picfiles'temp'");
 string format = string.format(@"Set-UserPhoto {0} -PictureData ([System.IO.File]::ReadAllBytes(""{1}"")", user, path);
 string format = "Set-UserPhoto "; format += "'" + user + "'"; format += " -PictureData ([System.IO.File]::ReadAllBytes("; format += "'" + path + @"'"; format += ")";

我建议在这里字符串中使用字符串内插,如下所示,这将防止您不得不使用字符串连接和转义。

$format = @"
Set-UserPhoto " + user + " -PictureData ([System.IO.File]::ReadAllBytes(" + path + ")"
"@