• 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.

0 głosów
372 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 149 wizyt
pytanie zadane 9 grudnia 2018 w Inne języki przez Młody programista Obywatel (1,200 p.)
0 głosów
0 odpowiedzi 172 wizyt
pytanie zadane 27 maja 2019 w Systemy operacyjne, programy przez MegaaSoft Obywatel (1,430 p.)
0 głosów
0 odpowiedzi 201 wizyt

93,633 zapytań

142,558 odpowiedzi

323,058 komentarzy

63,141 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...