Czy w batchu jest jakaś instrukcja typu “if exist”?
Wpisz w konsoli (czyli w programie cmd.exe) taki tekst: “if/?” i sam się przekonaj
No ale to nie działa
Po wpisaniu polecenia
help
wyświetli ci się lista instrukcji. Jeśli wpiszesz
help
np.
help if
to wyświetli więcej informacji na temat danej instrukcji. Często można też wpisać
/?
np.
if /?
które robi to samo.
Po zapoznaniu się z opisem instrukcji if dowiesz się, że można jej podać argument exist i jak go używać.
Polecam również:
:wink:Ale if/? dziala, tylko to co tam podają nie działa -.-
Co ten link ma do rzeczy? --__–
if/? masz wpisać w wiersz poleceń (win+r cmd)
@op
Zadajesz bardzo ogólne pytanie a potem piszesz „nie działa”, „nie działa”. Ale co ci nie działa? Gdybyś dokładniej opisał, z czym masz problem, miałbyś większą szansę na uzyskanie satysfakcjonującej odpowiedzi. Póki co mamy zabawę w kalambury a nie każdy ma czas i chęci na zgadywanie o co może ci chodzić.
Wiem -_-
Jak wpisuje ten kod:
@echo off
if exist "C:/users/GOKOP/desktop/abc.txt" goto am
:am
echo Trolololo
pause
:em
echo uuuuuu
pause
to po prostu najpierw wyświetla się “Trolololo” a następnie “uuuuuu”. (nieważne, czy plik abc.txt istnieje czy nie)
Po skoku do etykiety am wykonywane są wszystkie instrukcje po koleji, łącznie z tymi po etykiecie em.
Jeśli nie ma pliku to nie jest wykonywany skok, tylko przechodzi po prostu do następnej instrukcji po if.
Możesz np. dać przed etykietą skok za blok kodu, wtedy pominie blok, do którego nie wykonujesz bezpośredniego skoku
goto po_em
:em
echo uuuuuu
pause
:po_em
Generalnie przy sprawdzaniu obecności pliku robi się zwykle tak:
if exist "plik.txt" goto jest_plik
echo Brak pliku
goto dalej
:jest_plik
echo Plik istnieje
:dalej
echo Jakies inne rzeczy
Jeśli plik istnieje to skacze do etykiety jest_plik i wykonuje wszystko co jest po tej etykiecie.
Gdy pliku nie ma to przechodzi do następnej instrukcji, czyli wypisuje, że pliku nie ma a następnie skacze do etykiety dalej dzięki czemu omija instrukcje, które są wykonywane w przypadku obecności pliku.
Są to podstawy batcha niewiele związane z samą instrukcją if.
Ale instrukcja pause też się nie wykonuje, tylko jest chwilowe opóźnienie :c
U mnie, w podanym przez ciebie fragmencie kodu, pause działa prawidłowo :-s
Jak to? :o