Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto
Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto
Abbiamo testato per alcune settimane il Navimow i105E, un robot tagliaerba che unisce il segnale RTK alla visione con videocamera intelligente, per un posizionamento preciso e un taglio impeccabile
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G?
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G?
Xiaomi 14 e Xiaomi 14 Ultra sono due dei più performanti cameraphone del 2024. Li abbiamo messi sotto torchio con tutte le prove che effettuiamo solitamente per le recensioni delle fotocamere, per saggiarne il comportamento e avere tutti i dati tecnici per un confronto ragionato
Corsair One i500: un PC gaming potente che può stare anche in salotto
Corsair One i500: un PC gaming potente che può stare anche in salotto
Corsair One i500 è un PC completo molto potente ma che occupa poco spazio e lo fa con stile. Un sistema che può servire tanto per lavorare quanto per giocare, con molti spunti interessanti ma anche qualche neo. Il prezzo è da capogiro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-12-2014, 17:15   #1
23Andrea
Member
 
Iscritto dal: Jul 2012
Messaggi: 126
[DOS] Si può fare questa cosa in DOS?

Ciao, e scusate il titolo generico
Con un file batch è possibile eseguire contemporaneamente due processi, mantenendo il codice sullo stesso script?
Cerco di spiegarmi...
Un primo file batch contiene un loop che viene eseguito senza interruzione fino al termine del processo.
Al verificarsi di una determinata condizione, viene avviato un secondo file batch, mentre il primo è ancora in esecuzione.
E' possibile accorpare il codice del primo e del secondo script in un unico file batch?
Una possibilità sarebbe

Codice:
START CMD /k "<codice del secondo batch>"

ma i comandi multipli dopo /k devono essere racchiusi tra virgolette, limitando la possibilità di inserire comandi complessi.

Grazie.
23Andrea è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2014, 11:04   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ti suggerisco una strada alternativa molto più semplice: basta che scrivi i due programmi all'interno di due routine distinte nello stesso file, quindi prevedi un parametro che dica allo script se deve eseguire la prima routine o la seconda.
La prima routine richiama lo stesso file batch passando il parametro che indica di eseguire la seconda routine.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2014, 19:34   #3
23Andrea
Member
 
Iscritto dal: Jul 2012
Messaggi: 126
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
...scrivi i due programmi all'interno di due routine distinte nello stesso file,...
Come si distinguono due routine nello stesso file? Con due etichette?
E come faccio (con quale comando o sequenza di comandi) ad indicare quale routine eseguire?
So usare CALL per richiamare altri file eseguibili o per richiamare etichette dello stesso file bat (ma interrompendo la routine corrente): questa cosa che dici tu non l'ho mai fatta
23Andrea è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2014, 07:18   #4
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Dalla tua risposta vedo che conosci già tutti gli elementi necessari, ti faccio un esempio molto banale su come utilizzarli, supponiamo che il file si chiami script.cmd:
Codice:
@echo off
set prog_da_eseguire=%1
if "%prog_da_eseguire%"=="secondo_prog" (
  call :secondo_prog
) else (
  call :primo_prog
)
exit 0

:primo_prog
  start script.cmd secondo_prog
  for /l %%i in (1, 1, 10) do (
    echo Primo prog %%i
    ping -n 2 127.0.0.1 >nul
  )
goto:eof

:secondo_prog
  for /l %%i in (1, 1, 10) do (
    echo Secondo prog %%i
    ping -n 2 127.0.0.1 >nul
  )
goto:eof
Basterà chiamare script.cmd e come per magia si apriranno due finestre, una stamperà "Primo prog ..." e l'altra "Secondo prog ...", i cicli for e i comandi ping servono per far rimanere aperte le finestre per il tempo sufficiente a valutare la funzionalità, ovviamente tu li sostituirai con le istruzioni che ti interessano.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2014, 06:36   #5
23Andrea
Member
 
Iscritto dal: Jul 2012
Messaggi: 126
Bingo!

GRANDE Daniels118

Basta inserire all'inizio del file un comando CALL

Codice:
CALL :%1
e poi utilizzare

Codice:
START File.bat <nome etichetta>
per richiamare il file.
Grazie mille.
P.S.: sono molto inesperto (tra l'altro) nell'uso dei parametri. Qualcuno sa dove trovare dei buoni esempi? Grazie ancora.
23Andrea è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2014, 09:24   #6
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Si, però in quel modo sei costretto a passare il nome dell'etichetta anche quando sei tu a lanciare lo script. Si può ovviare dando un valore predefinito alla variabile:
Codice:
set etichetta=%1
if not defined etichetta set etichetta=etichetta_predefinita
Ovviamente questo non ti salva se passi il nome di un'etichetta non definita.
Nel comando start puoi sostituire il nome dello script con %~f0, in questo modo puoi rinominare il file senza modificare le istruzioni start.

Qui puoi trovare molte informazioni su questo ed altri argomenti:
http://ss64.com/nt/syntax-args.html
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2014, 18:46   #7
23Andrea
Member
 
Iscritto dal: Jul 2012
Messaggi: 126
Ma...sopprimere semplicemente il messaggio di errore con
Codice:
@CALL :%1 2>NUL

Poco elegante?
23Andrea è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2014, 19:31   #8
23Andrea
Member
 
Iscritto dal: Jul 2012
Messaggi: 126
Oppure utilizzare, per lanciare il file bat, un link con destinazione

Codice:
Unità:\Percorso\NomeFile.bat etichetta_inizio
e inserire una etichetta subito dopo la chiamata del parametro:
Codice:
CALL :%1
:etichetta_inizio
23Andrea è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2014, 09:19   #9
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
De gustibus
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto Robot tagliaerba Navimow i105E in prova: GPS e v...
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G? Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchi...
Corsair One i500: un PC gaming potente che può stare anche in salotto Corsair One i500: un PC gaming potente che pu&og...
realme 12X 5G: ottimo compromesso a meno di 200 euro realme 12X 5G: ottimo compromesso a meno di 200 ...
Recensione Apple iPad Pro M4: è più potente di un MacBook Air M3 Recensione Apple iPad Pro M4: è più...
Lunga Marcia 2D: la Cina continua i test...
RTX Remix sempre più open source ...
Missione cinese Chang'e-6: i video e le ...
NVIDIA punta sulle schede video Small Fo...
Project G-Assist, NVIDIA vuole integrare...
ASUS ROG Ally X ufficiale: ecco specific...
È il miglior portatile gaming tut...
Sono mini PC potenti e con prezzo imbatt...
159€ sono davvero pochi per questo ottim...
Le 5 svendite Amazon top: TV 55" LG...
La missione cinese Chang'e-6 è at...
dearMoon: la missione spaziale privata i...
Il richiestissimo controller DualSense o...
Il MacBook Air 13,6'' del 2022 (chip M2)...
Sono questi gli iPhone 15 più sco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:48.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www1v