• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem w skrypcie testującym w cmd.

Aruba Cloud - Virtual Private Server VPS
0 głosów
290 wizyt
pytanie zadane 26 października 2022 w Systemy operacyjne, programy przez Xodi Początkujący (280 p.)

Witam, jako że zaczęła się olimpiada informatyczna potrzebuję programu testującego który ma sprawdzać wynik pliku .exe dla pliku .in i go porównywać z plikiem .out. Nie mam praktycznie żadnego doświadczenia z tą konsolą więc pisanie tego idzie my nad wyraz ciężko. Póki co mam coś takiego : 

@echo off
set dir="C:\Users\Desktop\Desktop\XXX OI\Zad 1"
set i=0
 
set limit=10
set nazwa=kol
 
:start
if %i%==%limit% pause
%nazwa%.exe < %dir%\in\wejscie%i%.in > %dir%\moje_odp\odp%i%.out
fc /w %dir%\out\wyjscie%i%.out %dir%\moje_odp\odp%i%.out
set /A i = i + 1
echo %i%
goto start

Problem polega na tym, że pętla kończy się po pierwszym razie. Nie mam pojęcia czemu. Wynik programu :

Microsoft Windows [Version 10.0.19043.2130]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Desktop\Desktop\XXX OI\Zad 1>@echo off
set dir="C:\Users\Desktop\Desktop\XXX OI\Zad 1"
set i=0

set limit=10
set nazwa=kol

:start
if %i%==%limit% pause
%nazwa%.exe < %dir%\in\wejscie%i%.in > %dir%\moje_odp\odp%i%.out
fc /w %dir%\out\wyjscie%i%.out %dir%\moje_odp\odp%i%.out
Comparing files C:\USERS\DESKTOP\DESKTOP\XXX OI\ZAD 1\OUT\wyjscie0.out and C:\USERS\DESKTOP\DESKTOP\XXX OI\ZAD 1\MOJE_ODP\ODP0.OUT
FC: no differences encountered

set /A i = i + 1
1goto start

Za odpowiedzi z góry dziękuję.

1 odpowiedź

+2 głosów
odpowiedź 27 października 2022 przez VBService Ekspert (256,600 p.)
wybrane 27 października 2022 przez Xodi
 
Najlepsza

Masz błąd w linii 19  1goto start, usuń cyfre 1

proponuję taki zapis dla if-a

@echo off

set dir="C:\Users\Desktop\Desktop\XXX OI\Zad 1"
set i=0 
set limit=10
set nazwa=kol
 
:start
if %i%==%limit% goto end

%nazwa%.exe < %dir%\in\wejscie%i%.in > %dir%\moje_odp\odp%i%.out
fc /w %dir%\out\wyjscie%i%.out %dir%\moje_odp\odp%i%.out
 
set /A i = i + 1
goto start

:end
pause

 

P.S. zapisz sobie powyższy skrypt do pliku np.

fc_xxx_OI_zad_1.cmd lub fc_xxx_OI_zad_1.bat

i uruchamiaj go kliknięciem, plik skryptu możesz umieścić np. na "pulpicie" (desktop)

Podobne pytania

0 głosów
0 odpowiedzi 108 wizyt
pytanie zadane 9 grudnia 2018 w Inne języki przez Młody programista Obywatel (1,200 p.)
0 głosów
0 odpowiedzi 124 wizyt
pytanie zadane 27 maja 2019 w Systemy operacyjne, programy przez MegaaSoft Obywatel (1,430 p.)
0 głosów
0 odpowiedzi 152 wizyt

93,334 zapytań

142,328 odpowiedzi

322,406 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...