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 命令的单引号内的变量。 命令。我所拥有的不起作用。
"
符号的用户'"
或'
的''
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 + ")"
"@