Prendete un atrocemente semplice file batch:dell'amministratore di file batch con parametri doppie citati
echo hi
pause
Salva che, come test.bat. Ora, crea una scorciatoia per test.bat. Il collegamento esegue il file batch, che stampa "ciao" e quindi attende una pressione del tasto come previsto. Ora aggiungi alcuni argomenti alla destinazione del collegamento. Ora hai una scorciatoia per:
%path%\test.bat some args
Il collegamento esegue il file batch come prima.
Ora, eseguire la scorciatoia come amministratore. (Questo è anche su Windows 7.) È possibile utilizzare il tasto destro del mouse -> Esegui come amministratore, oppure andare alle proprietà del collegamento e selezionare la casella nella sezione avanzata. Informa UAC che va bene e ancora una volta il collegamento esegue il file batch come previsto.
Ora, modificare gli argomenti nella destinazione del collegamento per aggiungere le virgolette:
%path%\test.bat "some args"
Ora provare il collegamento come amministratore. Non funziona questa volta! Una finestra di comando si apre e scompare troppo velocemente per vedere qualsiasi errore. Ho provato ad aggiungere> test.log 2> & 1 al collegamento, ma in questo caso non viene creato alcun registro.
Provare a eseguire lo stesso collegamento (con virgolette doppie) ma non come amministratore. Esegue bene il file batch. Quindi, sembra che il comportamento non sia dovuto ai doppi parametri citati, e non perché sia eseguito come amministratore. È una strana combinazione dei due.
Ho anche provato a eseguire lo stesso comando dalla finestra di comando di un amministratore. Questo ha eseguito il file batch come previsto senza errori. L'esecuzione del collegamento dalla finestra di comando generava una nuova finestra di comando che lampeggiava e andava via. Quindi a quanto pare il problema è causato da una combinazione di amministratore, la scorciatoia e le doppie virgolette.
Sono totalmente perplesso, qualcuno ha idea di cosa sta succedendo? Mi piacerebbe anche una soluzione.
cosa dire quando si esegue il comando effettivo sulla riga di comando. '% percorso% \ test.bat" alcuni argomenti "'. che cosa hai visto? – ghostdog74
quando si esegue dalla riga di comando, il file batch stampa "ciao" e quindi attende la pressione di un tasto, come ci si potrebbe aspettare. – XXB