在@"..."
文字,有"
字符,則必須使用其中兩個這樣:
string.Format(
@"-S -E -M -m -e ascii -i {0}.dat -T db1.dbo.table1 -R {1}.reject -t ""|"" -r \r\n -rt value -rv 1000 -W -fh 0",
// note -----------------------------------------------------------------^^-^^
saveFilePath + a,
saveFilePath + b);
然而,如果您希望那些\r
和\n
爲回車符和換行符,則不能使用@"..."
字符串文字,因爲反斜槓並不是特殊字符(這是它們的重點)。所以,如果是這樣的話:
string.Format(
"-S -E -M -m -e ascii -i {0}.dat -T db1.dbo.table1 -R {1}.reject -t \"|\" -r \r\n -rt value -rv 1000 -W -fh 0",
// note ^-------------------------------------------------------------------^^-^^
saveFilePath + a,
saveFilePath + b);
推薦閱讀:string (C# Reference)
邊注:有沒有必要爲你在函數的參數做字符串連接。既然你已經調用string.Format
,你可以有它做到這一點:
string.Format(
"-S -E -M -m -e ascii -i {0}{1}.dat -T db1.dbo.table1 -R {2}{3}.reject -t \"|\" -r \r\n -rt value -rv 1000 -W -fh 0",
// note ---------------------^^^^^^--------------------------^^^^^^
saveFilePath,
a, // <==
saveFilePath,
b); // <==
你爲什麼不使用「字符串\ |」而不是@「」|「」? – darkndream
它不是'|'需要轉義,它是雙引號。使用雙引號。 – Habib
在這種情況下,我是否需要在開頭保留「@」? – Relativity