file batch equivalente per questo codice
-
21-08-2019 - |
Domanda
HI Voglio realizzare questo codice C nel file batch
int i;
scanf("%d", &i);
for(int j = 0;j<i;j++)
{
scanf("%d",&j);
printf("%d",j);
}
Vorrei eseguire il programma c utilizzando> reindirizzamento in DOS in modo che l'output di stampa viene a me in un file. Io voglio fare la stessa cosa nel mio file batch dove ho potuto scrivere qualcosa di simile
echo %variable% >> file
, ma non funziona per me
@echo off
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo %c% >> file.txt
)
ciò che è sbagliato?
Soluzione
Non può lavorare in quanto è necessario espansione ritardata delle variabili come si tenta di fare riferimento a una variabile che cambia nel if
blocco. Si può provare il seguente:
@echo off
setlocal enabledelayedexpansion
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo !c! >> file.txt
)
in quanto ciò valutare c
solo quando viene eseguito il codice, non quando la linea (in questo caso la dichiarazione >> file
completo) viene analizzato.
Una semplice traduzione del codice C in lotti sarebbe probabilmente più simile a quanto segue, anche se:
@echo off
set /p i=
:loop
set /p j=
echo %j%
set /a j+=1
if %j% LSS %i% goto loop
È possibile aggiungere istruzioni, se volete, anche se il programma C non ha avuto loro neanche :). E ora si può inviare l'output del programma batch nel suo insieme o semplicemente aggiungere un <=> in là per buona misura.