Batch-Datei Äquivalent für diesen Code
-
21-08-2019 - |
Frage
HALLO Ich mag diesen C-Code in Batch-Datei implementieren
int i;
scanf("%d", &i);
for(int j = 0;j<i;j++)
{
scanf("%d",&j);
printf("%d",j);
}
Ich würde das c-Programm> Umleitung in DOS laufen, so dass die gedruckte Ausgabe in einer Datei zu mir kommt. Ich möchte die gleiche Sache in meiner Batch-Datei zu tun, wo ich so etwas wie
schreiben könnte echo %variable% >> file
aber es funktioniert nicht für mich arbeiten
@echo off
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo %c% >> file.txt
)
, was falsch ist?
Lösung
Das kann nicht funktionieren, da Sie variable Erweiterung verzögert benötigen, wie Sie an eine sich verändernde Variable im if
Block zu beziehen versuchen. Sie können versuchen Sie Folgendes:
@echo off
setlocal enabledelayedexpansion
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo !c! >> file.txt
)
als diese c
bewerten würde nur dann, wenn der Code ausgeführt wird, nicht, wenn die Linie (in diesem Fall der komplette if
Anweisung) analysiert wird.
Eine einfache Übersetzung Ihres C-Code in Batch wäre wahrscheinlich wie folgt aussehen, aber:
@echo off
set /p i=
:loop
set /p j=
echo %j%
set /a j+=1
if %j% LSS %i% goto loop
Sie können Eingabeaufforderungen, wenn Sie möchten, obwohl das C-Programm nicht, sie hat entweder :). Und nun können Sie die Ausgabe des Batch-Programm als Ganzes oder fügen Sie einfach einen >> file
dort für eine gute Maßnahme.