PDA

View Full Version : [Batch]Eseguire come amministratore da link...non sempre si può!


23Andrea
31-10-2017, 18:10
Un esempio semplice...

@ECHO %1
@PAUSE

1) salvo il file Esempio_semplice.bat,
2) per automatizzare la richiesta di privilegi amministrativi, creo un collegamento, Esempio_semplice.lnk, e
3) nelle proprietà del link (Proprietà > Collegamento > Avanzate...) seleziono "Esegui come amministratore".

Trascinando l'icona di un file sull'icona del collegamento, lo script visualizza il percorso completo del file, ma SOLO se il nome non contiene spazi, altrimenti lo script non funziona.
Inutile virgolettare il parametro.
Se nelle proprietà del link DEseleziono l'opzione "Esegui come amministratore", lo script funziona in ogni caso, aggiungendo automaticamente le virgolette ai percorsi contenenti spazi.

C'è una soluzione semplice?
Grazie.

x_Master_x
02-11-2017, 13:23
Nella destinazione del collegamento usa:

C:\Windows\System32\cmd.exe /s /c ""X:\Percorso\Test.bat"


Le due "" non sono casuali, se ne usi una non vedi il percorso con spazi.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET OldParam=%1
SET Param=!OldParam:~1!
ECHO !Param!
PAUSE

Mursey
02-11-2017, 22:17
Lui però ha detto che trascina l'icona.

x_Master_x
03-11-2017, 07:42
Appunto, ha scritto "Trascinando l'icona di un file sull'icona del collegamento" ma il collegamento in questione a cui mi riferisco non deve puntare al batch diretto ma a CMD prima altrimenti non funziona.

23Andrea
03-11-2017, 14:24
Nella destinazione del collegamento usa:

C:\Windows\System32\cmd.exe /s /c ""X:\Percorso\Test.bat"




Eh... con il batch dell'esempio funziona, ma con il batch vero no!

...
@FOR %%E IN (%*) DO @(
ECHO %%E
)
...

Forse il loop non gradisce la virgolettatura "orfana" che rimane davanti al percorso quando il parametro viene espanso?

x_Master_x
03-11-2017, 15:10
Passala senza la vigoletta nel loop come da esempio, no?