2012-01-12 16 views
5

Ho risolto la domanda che avevo sull'inserimento di% DATE% in un valore di registro REG_SZ (see link), ma ora sto riscontrando un problema leggermente diverso cercando di inserire% ~ DP0 (percorso di origine lungo) in un valore di registro utilizzando REG ADD all'interno di uno script .BAT. Non lo farà, e sono sicuro che è perché sto facendo qualcosa di sbagliato.Scrittura% ~ DP0 nel registro utilizzando REG ADD

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0" /t REG_SZ /f 

Ho anche provato l'impostazione del valore a una variabile prima, ma che non funziona neanche. Quello che succede è che inserisce il percorso espanso senza la doppia virgola precedente, ma con una doppia virgola finale, e quindi bombarda con un errore su REG /? sintassi, ecc.

SET VX=%~DP0 
reg add "hklm\software\acme" /v "TestValue" /d "%VX%" /t REG_SZ /f 

Qualcuno capisce cosa sto facendo male?

risposta

5

Il percorso% ~ dp0 termina nel carattere separatore della directory '\' (ad es. 'C: \ temp \') che viene interpretato come un'uscita per il seguente carattere a doppia virgola e quindi il parser non vede il chiusura doppia citazione. Quello che devi fare è sfuggire al carattere finale con un altro:

reg add "hklm\software\acme" /v "TestValue" /d "%~dp0\" /t REG_SZ /f 
Problemi correlati