Sto cercando di assegnare l’output di un comando a una variabile – come in, sto cercando di impostare la versione flash corrente su una variabile. So che questo è sbagliato, ma questo è quello che ho provato:
imposta var = reg query hklm \ SOFTWARE \ Macromedia \ FlashPlayer \ CurrentVersion>
- Proprietà del sistema Java e variabili d'ambiente
- JavaScript controlla se la variabile esiste (è definita / inizializzata)
- Assegnazione di variabili con nomi dinamici in Java
- Perché le variabili dichiarate con il loro nome di interfaccia in Java?
- Come dichiarare la variabile e usarla nello stesso script SQL? (Oracle SQL)
o
reg query hklm \ SOFTWARE \ Macromedia \ FlashPlayer \ CurrentVersion >> imposta var
Sì, come puoi vedere sono un po ‘perso. Qualsiasi aiuto è apprezzato!
Un metodo è già stato ideato, tuttavia in questo modo non è necessario un file temporaneo.
for /f "delims=" %%i in ('command') do set output=%%i
Tuttavia, sono sicuro che questo ha le sue eccezioni e limitazioni.
Questo post ha un metodo per raggiungere questo objective
da (zvrba) Puoi farlo reindirizzando prima l’output in un file. Per esempio:
echo zz > bla.txt set /p VV=
Non è ansible assegnare un output di processo direttamente in una var, è necessario analizzare l’output con un ciclo For / F:
@Echo OFF FOR /F "Tokens=2,*" %%A IN ( 'Reg Query "HKEY_CURRENT_USER\Software\Macromedia\FlashPlayer" /v "CurrentVersion"' ) DO ( REM Set "Version=%%B" Echo Version: %%B ) Pause&Exit
PS: cambia la chiave del registro usata se necessario.
Va bene qui un esempio più complesso per l’uso di For / F
:: Main @prompt -$G call :REGQUERY "Software\Classes\CLSID\{3E6AE265-3382-A429-56D1-BB2B4D1D}" @goto :EOF :REGQUERY :: Checks HKEY_LOCAL_MACHINE\ and HKEY_CURRENT_USER\ :: for the key and lists its content @call :EXEC "REG QUERY HKCU\%~1" @call :EXEC "REG QUERY "HKLM\%~1"" @goto :EOF :EXEC @set output= @for /F "delims=" %%i in ('%~1 2^>nul') do @( set output=%%i ) @if not "%output%"=="" ( echo %1 -^> %output% ) @goto :EOF
L’ho inserito nella sottofunzione: EXEC quindi tutti i suoi brutti dettagli sull’implementazione non leccano la sceneggiatura principale. Quindi ha un po ‘di tutorial in serie. Note sul codice:
echo %1 -^>...
così là ^ rende ansible l’output a’> ‘tramite echo cos’altro non sarebbe stato ansible. @if not "%output%"==""
è simile ai più comuni linguaggi di programmazione, forse è diverso da quello che ti aspettavi (se non sei abituato a MS-batch). Rimuovere bene la ‘@’ all’inizio. Studia l’output. Cambialo in not %output%==""
-rerun e considera perché questo non funziona. 😉