Avatar billede larsgrau Forsker
17. februar 2023 - 10:49 Der er 3 kommentarer

"" in C# kode

Hej

Jeg har nedestående kode, som jeg ikke rigtigt kan få til at virke, i den powershell kommando som jeg gerne vil bruge "", men det fejler i min kode nogen ide til hvordan man bruger "" i koden
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RunCommand
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
   

        }   

    private void button48_Click(object sender, EventArgs e)
        {
            ProcessStartInfo ps = new ProcessStartInfo();
            ps.FileName = "powershell.exe";
            ps.Verb = "runas";
            ps.WindowStyle = ProcessWindowStyle.Normal;
            ps.Arguments = @"Invoke-WUJob -ComputerName Datainterface -Script {ipmo PSWindowsUpdate; Install-WindowsUpdate -AcceptAll -Autoreboot | Out-File "c:\temp\PSWindowsUpdate_datainterface.log"} -RunNow -Confirm:$false -Verbose -ErrorAction Ignore";
            Process.Start(ps);
        }
    }
}
Avatar billede chrisrj Forsker
17. februar 2023 - 12:11 #1
Hvis du skal bruge " i en string, så skal du skrive \"

Det kaldes escaping.

Du kan læse mere om det her: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/strings/?redirectedfrom=MSDN
Avatar billede arne_v Ekspert
17. februar 2023 - 13:18 #2
Der er forskellige regler for "" og @"" strenge. For "" strenge escaper man med \". For @"" strenge fordobler man med "".

Simpelt eksempel:


using System;

namespace Q
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string s1 = "\"\\\"";
            string s2 = @"""\""";
            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.ReadKey();
        }
    }
}
Avatar billede arne_v Ekspert
17. februar 2023 - 14:42 #3
Hvis man er på nyeste C# er der også """ strenge.


using System;

namespace Q
{
    public class Program
    {
        public static void Main(string[] args)
        {
            string s1 = "\"\\\"";
            string s2 = @"""\""";
            string s3 = """
"\"
""";
            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.WriteLine(s3);
        }
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester