equivalente arquivo de lote para este código
-
21-08-2019 - |
Pergunta
Oi eu quero implementar este código C no arquivo de lote
int i;
scanf("%d", &i);
for(int j = 0;j<i;j++)
{
scanf("%d",&j);
printf("%d",j);
}
Gostaria de executar o programa c usando> redirecionamento em DOS para que a saída impressa vem a mim em um arquivo. Eu quero fazer a mesma coisa no meu arquivo de lote onde eu poderia escrever algo como
echo %variable% >> file
mas ele não funciona para mim
@echo off
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo %c% >> file.txt
)
o que está errado?
Solução
Isso não pode trabalho desde que você precisa atrasou a expansão de variáveis ??como você tentar se referir a uma variável de mudança no bloco if
. Você pode tentar o seguinte:
@echo off
setlocal enabledelayedexpansion
for %%i in (1 2 3) do (
set /p c=enter a name?
echo %%i
echo !c! >> file.txt
)
como este iria avaliar c
apenas quando o código é executado, não quando a linha (neste caso a declaração if
completa) é analisado.
Uma tradução direta do seu código C no lote provavelmente mais parecido com o seguinte, no entanto:
@echo off
set /p i=
:loop
set /p j=
echo %j%
set /a j+=1
if %j% LSS %i% goto loop
Você pode adicionar prompts se quiser, embora o programa C não tê-los, quer :). E agora você pode canalizar a saída do programa de lote como um todo ou apenas adicionar um >> file
lá para uma boa medida.