Permalänk
Medlem

CMD \ till \\ i variabel?

Hej alla,

Håller på och försöker skapa en batchfil (.cmd) som ska läsa av, visa (och eventuellt spara) versionsnumret på en del filer i windows.

Jag försöker använda mig av commandot WMIC, exempel:

wmic datafile where name='c:\\windows\\system32\\notepad.exe' get version

Den verkar kräva att man skriver \\ istället för \.

Själv har jag alltid använt:

SET INSDIR=%~dp0

för att programmet ska kunna veta vart ifrån det körs och endast kolla upp versionsnummer på filerna där. Dock verkar jag inte kunna använda dessa två kommandon tillsammans.....

SET verkar använda \ medan wmic kräver \\

Jag behöver därför en metod att konvertera variabler skapade med SET från \ till \\ eller så behöver jag en ny metod för att kolla versionsnummer på filer istället för wmic.

Någon som har ett tips?

(Jag har aldrig fattat vad det är för skillnad på \\ och \... att googla på "\ difference \\" ger inte direkt något...)

Permalänk
Medlem

\ används ofta som "escape character", helt enkelt för att kunna använda sig utav saker som annars hade varit omöjligt. Den är därför reserverad till just detta ändamål. Strängar är ofta uppbygga på t.ex.

print "här är en lång sträng"

men om du vill använda dig utav citattecken i strängen så hade strängen istället för att lägga till ett citattecken stängt strängen. Då får man helt enkelt göra

print "här är en \"lång\" sträng"

för att kompilatorn ska förstå rätt.

Skulle råda dig att försöka använda PowerShell för det du försöker göra.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem

Hittade en lösning efter rätt mycket googlande:

set str=%str:teh=the%

Där teh ersätts med the.
källa

celoz: Du har säkert rätt i att Powershell är bättre. Då jag ska göra relativt enkla saker så tror jag dock att jag kan klara mig med cmd