Aiuto, programmazione batch!?

Salve a tutti, sto creando un semplicissimo programmino in batch che poi esporterò in exe con BAT TO EXE.

(Tale programma verrà lanciato appena inserisco la pennetta grazie ad autorun.inf).

Il programma dovrebbe aprire la periferica in cui si trova indipendentemente dalla porta in cui è stata inserita (quindi dalla lettera a cui corrisponde), questo è il paragrafo che ho scritto:

"

:opening

explorer.exe A:\

explorer.exe B:\

explorer.exe C:\

explorer.exe D:\

explorer.exe E:\

explorer.exe F:\

ecc...

"

Il problema è che in questo modo mi apre tutte le periferiche, e apre finestre di errore nel caso l'unità non venisse trovata.

Vorrei che venisse aperta solo l'unità contenente il file eseguibile (anche non potendo prevedere in che porta verrà inserita). Esiste un comando specifico?

Grazie a tutti in anticipo per la risposta. :-P

2 risposte

Classificazione
  • 3 anni fa
    Risposta preferita

    Il problema semmai è un'altro: per una questione di sicurezza a partire da Windows 7, è stata bloccata l'esecuzione automatica di programmi all'inserimento di una chiavetta USB, per evitare la diffusione di malware. Inoltre gli exe generati da Bat to Exe vengono spesso scambiati per virus dai software antivirus, dipende comunque dalle istruzioni presenti all'interno.

    In ogni caso, questa istruzione apre la cartella root del drive da cui è stato avviato:

    explorer.exe "%CD:~0,3%"

    La stringa "%CD:~0,3%" equivale a "C:\", se lo script è eseguito da un percorso del drive C, "D:\" se il drive è invece D, e così via.

    Volendo è anche possibile aprire una cartella specifica. Ad esempio per aprire la cartella "temp" del drive corrente, è sufficiente modificarla così: explorer.exe "%CD:~0,3%temp"

Altre domande? Fai una domanda e ottieni le risposte che cerchi.