Wie hängt man einen Registrierungsschlüsselwert an, der Leerzeichen enthält?

1

Ich habe die folgende Seite gefunden ( Wie ändere ich die Daten eines vorhandenen Registrierungsschlüsselwertnamens von cmd? ) Und sie war äußerst hilfreich, aber ich habe eine weitere Frage.

Mein PFAD hat einen Wert, der "c: \ Programme \ Microsoft SQL Server \ 100 \ Tools \ Binn \" enthält, und ich möchte "P: \ SQL" hinzufügen. Wenn ich das folgende Skript ausführe, sieht mein PFAD dann wie folgt aus: "C: \ Program; P: \ SQL". Was muss geändert werden, damit mein PFAD wie folgt aussieht: "c: \ Programme \ Microsoft SQL Server \ 100 \ Tools \ Binn \; P: \ SQL"?

Folgendes habe ich:

for /F "skip=2 tokens=3" %%r in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set oldVal=%%r    
echo previous=%oldVal%    
set newVal=%oldVal%;P:SQL    
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d %newVal% /f

Vielen Dank.

Nick H
quelle
Verwenden Sie /vnicht mit /vezu beginnen.
DavidPostill
Warum verwenden Sie die Registrierung, um den Pfad festzulegen?
DavidPostill
DavidPostill, ich hatte es nur mit '/ V' versucht, aber es hat auch nicht funktioniert. Wir stellen eine neue Software für 700 Computer bereit, und ich muss P: \ SQL zum PATH hinzufügen, damit Module dieser App auf Daten zugreifen können. Ich halte es nicht für sinnvoll, eine Technologie an 700 Computer zu senden.
Nick H

Antworten:

1

Wie füge ich meinem einen Wert hinzu PATH?

Meine PATHhat einen Wert, der folgendes beinhaltet "c:\Program Files\Microsoft SQL Server\100\Tools\Binn\", und ich möchte hinzufügen , "P:\SQL"um es

Warum lesen / schreiben Sie die Registrierung?

Verwenden Sie einfach setx, um einen Wert zu Ihrem hinzuzufügen PATH:

setx PATH "%PATH%;P:\SQL" /m

Hinweis:

  • /mStellen Sie die Variable in der Systemumgebung ein HKLM.

    (Die Standardeinstellung ist die lokale Umgebung. HKCU)


Weitere Lektüre


DavidPostill
quelle
Warum habe ich die Registrierung verwendet? Weil ich gerade genug weiß, um mich in Schwierigkeiten zu bringen. :) Du hast das Problem behoben. Vielen Dank
Nick H
1

Wenn Sie die Registrierung wirklich manipulieren möchten, gehen Sie wie folgt vor, jedoch auf eigenes Risiko

@echo off
set new_value=;P:/SQL     ::set the new value here

set key="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
for /F "delims= skip=2" %%r in ('reg query %key% /v "Path"') do set old_value=%%r
set old_value=%old_value:    Path    REG_SZ    =%
set new_value=%old_value%%new_value%
reg add %key% /v "Path" /d "%new_value%" /f

Ich muss sagen, das ist ziemlich grob. Denken Sie immer daran, eine Sicherungskopie der Registrierung zu erstellen, bevor Sie sie ändern .

Michael D
quelle