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

Jak w cmd napisać plik.bat, który utworzy plik.cfg z ustawieniami?

VPS Starter Arubacloud
+1 głos
671 wizyt
pytanie zadane 10 listopada 2021 w Inne języki przez Hajpa Użytkownik (880 p.)
edycja 18 listopada 2021 przez Hajpa
Witam ponownie!

 

Jak napisać program w cmd, który utworzy/nadpisze plik.cfg z ustawieniami?

Np. ustawienia.bat otworzy plik ustawienia.cfg, wyświetli opcje ustawień i zapisze ustawienia w pliku.

Teraz mam plik ustawienia.cfg, który modyfikuję z poziomu python

Wyświetlane są dwa pytania:

1. Odtwarzać dźwięk o pełnej godzinie? (t/n)

2. Odtwarzać dźwięk co pół godziny? (t/n)

 

plik ustawienia.cfg:

[Ustawienia]
pelne = True
polowka = True

 pozdrawiam

 

==============

Utworzyłem taki ustawienia_zegara.bat:

 

title [Ustawienia zegara]
:start
echo off
CLS

echo [Ustawienia] > ustawienia.ini
CHOICE /T 15 /D T /c TN /m "Powiadamianie o pelnej godzinie?"
IF ERRORLEVEL 2 GOTO NO
IF ERRORLEVEL 1 GOTO YES
:NO
echo pelna = False >> ustawienia.ini
set pelna=Nie
echo Nie ustawione.
goto drugie
:YES
echo pelna = True >> ustawienia.ini
set pelna=Tak
echo Ustawione!
:drugie

echo.
CHOICE /T 15 /D T /c TN /m "Powiadamianie co pol godziny?"
IF ERRORLEVEL 2 GOTO NO2
IF ERRORLEVEL 1 GOTO YES2
:NO2
echo polowka = False >> ustawienia.ini
set polowka=Nie
echo Nie ustawione.
goto trzecie
:YES2
echo polowka = True >> ustawienia.ini
set polowka=Tak
echo Ustawione!
:trzecie

CHOICE /T 15 /D T /c TN /m "Ustawic alarm?"
IF ERRORLEVEL 2 GOTO NO3
IF ERRORLEVEL 1 GOTO YES3
:NO3
echo alarm = False >> ustawienia.ini
set alarm=Nie
echo Alarm nie ustawiony.
goto end
:YES3
echo alarm = True >> ustawienia.ini
set alarm=Tak
:usthour
set /p hour="Wprowadz godzine alarmu "
if %hour% geq 0 if %hour% lss 24 goto okhour

goto usthour
:okhour
echo alarmHour = %hour% >> ustawienia.ini

:ustminu
set /p minu="Wprowadz minuty alarmu "
if %minu% geq 0 if %minu% lss 60 goto okminu
goto ustminu
:okminu
echo alarmMinute = %minu% >> ustawienia.ini

echo Alarm ustawiony!
:end
cls
echo Podsumowanie:
echo Powiadamianie o pelnej godzinie: %pelna%
echo Powiadamianie co pol godziny: %polowka%
echo Alarm %alarm%
if %alarm%==Nie goto koniec
echo Alarm ustawiony na godzine %hour% : %minu%

:koniec
CHOICE /T 15 /D T /c TN /m "Zapisac ustawienia i uruchomic zegar?"
IF ERRORLEVEL 2 GOTO start
IF ERRORLEVEL 1 GOTO uruchom
:uruchom
start zegar.exe
exit
 

===========

Jak na moje potrzeby działa ok, chociaż wprowadzanie alarmu nie jest w 100% idiotoodporne, bo można np. wprowadzić 1d i skrypt to przyjmie i zapisze, ale jak napisałem, dla mnie jest wystarczający.

 

@VBService

W Python napisałem zegar, który chciałbym, żeby uruchamiał się przy starcie.

Plik Ustawienia_zegara.bat ma ok 1kb a podobny w py po skompilowaniu miałby parę mega, choć byłby w 100% idioten proof :)

Przy okazji czegoś się nauczyłem i okazało się, że cmd cli nie tylko nie umarł, ale dużo można w nim zrobić.

 

Dziękuję za podpowiadki.

3 odpowiedzi

+1 głos
odpowiedź 11 listopada 2021 przez Hajpa Użytkownik (880 p.)
Ok, dzięki za odpowiedzi. Ponownie przeczytałem internet 2x i urodziłem coś takiego:

 

echo off
CLS
echo Ustawienia zegara.
echo Wybierz t dla Tak lub n dla Nie.
echo.
echo [Ustawienia] > ustawienia.ini
CHOICE /T 15 /D T /c TN /m "Powiadamianie o pelnej godzinie?"
IF ERRORLEVEL 2 GOTO NO
IF ERRORLEVEL 1 GOTO YES
:NO
echo pelna = False >> ustawienia.ini
echo Powiadamianie o pelnej nie ustawione.
goto drugie
:YES
echo pelna = True >> ustawienia.ini
echo Powiadomienia o pelnej ustawione.
:drugie

echo.
CHOICE /T 15 /D T /c TN /m "Powiadamianie co pol godziny?"
IF ERRORLEVEL 2 GOTO NO
IF ERRORLEVEL 1 GOTO YES
:NO
echo polowka = False >> ustawienia.ini
echo Powiadamianie co pol godziny nie ustawione.
goto trzecie
:YES
echo polowka = True >> ustawienia.ini
echo powiadamianie co pol godziny ustawione.
:trzecie

CHOICE /T 15 /D T /c TN /m "Ustawic alarm?"
IF ERRORLEVEL 2 GOTO NO
IF ERRORLEVEL 1 GOTO YES
:NO
echo alarm = False >> ustawienia.ini
echo Alarm nie ustawiony.
goto end
:YES
echo alarm = True >> ustawienia.ini
echo Alarm ustawiony.
:end

type ustawienia.ini
pause

 

No i teraz kolejne pytanie:

Jak odczytać wprowadzoną godzinę (format 24h) czyli dwa cyfry i sprawdzić czy wprowadzona liczba jest z zakresu 0-23, a nie np. 666 albo abc?

Dzięki z góry
komentarz 11 listopada 2021 przez VBService Ekspert (251,210 p.)

Dlaczego chcesz taki skrypt napisać "pod" cmd? Na siłę można, ale linia poleceń nie za bardzo do tego się nadaje (skrypty .bat, .cmd). Wspominałeś coś o Python-ie.

0 głosów
odpowiedź 10 listopada 2021 przez Ser-Ver Użytkownik (820 p.)

Proszę:

@echo off

echo> ustawienia.cfg
 ::Czyscimy plik
echo [Ustawienia] >> ustawienia.cfg
:: Wpisujemy do nowej linie pliku ustawienia.cfg "[Ustawienia]"
echo pelne = %Pelne% >> ustawienia.cfg
:: Wpisujemy do nowej linie pliku ustawienia.cfg "pelne = [wartosc pelne]"
echo polowka = %Polowka% >> ustawienia.cfg 
:: Wpisujemy do nowej linie pliku ustawienia.cfg "polowka = [wartosc polowka]"

%Pelne% i %Polowka% zamień na swoje zmienne.

komentarz 10 listopada 2021 przez Ser-Ver Użytkownik (820 p.)
PS to po dwukropku to komentarze.
0 głosów
odpowiedź 11 listopada 2021 przez VBService Ekspert (251,210 p.)

Propozycje

ustawienia.bat otworzy plik ustawienia.cfg, wyświetli opcje ustawień i zapisze ustawienia w pliku.

Batch File To Read Text File Line By Line into A Variable

Batch File To Write Variable To a Text File

 

Wyświetlane są dwa pytania

Batch File To Get Input From User

Podobne pytania

0 głosów
1 odpowiedź 310 wizyt
pytanie zadane 28 stycznia 2023 w Inne języki przez tubylec01 Obywatel (1,260 p.)
–3 głosów
1 odpowiedź 1,517 wizyt
pytanie zadane 15 września 2017 w Inne języki przez Reavege Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,817 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...