[Skrypt Batch - CMD] Zamiana znaku w zawartości zmiennej


(flosky) #1

Witam,
Mam problem z pewnym skryptem. Powiedzmy że napisałem skrypt który:

  1. Pobiera Datę, i zapisuje ją do zmiennej Data
  2. Pobiera Godzinę, i zapisuje ją do zmiennej Czas
  3. Pobiera przy pomocy wget.exe , plik http://wttr.in/warszawa.png
  4. Przy pomocy polecenia Rename, Zmienia nazwę pliku Warszawa.png na %data%-%czas%.png
  5. Czeka 1h i wykonuje skrypt ponownie

Skrypt wygląda mniej więcej tak:

@echo off
:start
date /t > data.tmp    
for /f "tokens=*" %%a in ('type data.tmp') do set data=%%a
set data=%data: =%

time /t > czas.tmp
for /f "tokens=*" %%a in ('type czas.tmp') do set czas=%%a
set data=%data: =%

wget http://wttr.in/warszawa.png

rename "Warszawa.png"  "%data%-%czas%.png"

del data.tmp czas.tmp

timeout 360
goto start

Niby wszystko powinno działać, ale niestety godzina zawiera Dwukropek (":"),
a przecież nazwa pliku nie może zawierać tego znaku.

Czy znacie jakiś sposób żeby zamienić znak “:” na “.” w zmiennej (albo chociaż pliku czas.tmp)?
Spędziłem 2 Godziny na szukaniu w Google, ale nic nie znalazłem. Chociaż może to moja wina i źle szukałem?

Z góry dziękuje za pomoc :wink:


(madoch) #2

zamień:

%czas% na %czas::=_% w odpowiednim miejscu.


(flosky) #3

Dzięki :wink: