Skocz do zawartości
sqido

Plik Wsadowy

Rekomendowane odpowiedzi

uwierz mi, że przekopałem google zanim tu napisałem i ciagle szukam

ale nie moge znalesc odpowiedzi na moje pytanie

nie oczekuję także gotowego zestawienia komęd

chciałbym tylko aby ktos odrobinę mnie nakierował w jaki sposób można to zrobic...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. Dlaczego ma się pytać?

2. Dlaczego wsadowy?

3. Wiesz, że potrzebna będzie pełna ścieżka?

4. Dane do pliku wsadowego można przekazywać przez parametry.

5. Pooglądaj plik Autoexec.bat na dyskietce startowej Windows 98/awaryjnej Windows XP.

6. Najlepiej powiedz, co dokładnie chcesz zrobić i do czego konkretnie chcesz używać tego programu? Czy

DEL C:\WINDOWS\WIN.COM
to dla Ciebie za mało?

 

Edit: Rzuciłem okiem do Sieci i na dysk. Znalazłem to:

 

http://www.em.soft.webpark.pl/kod.htm

http://www.isep.pw.edu.pl/~iwanowsm/dyda.html

 

Oraz to:

@echo offc:cd\cd toolsclsif "%1" == "/?" goto infoif "%1" == "" goto infoecho W tym momencie szukam pliku lub katalogu %1 na dysku %2.echo Jeľeli plik lub katalog istnieje, ˜cieľka do niego pojawiecho si© poniľejdir %2:\%1 /s /b >temp.batif exist  temp.bat goto jestecho Nie znalazlem pliku lub katalogu %1goto end:jestecho Plik lub katalog %1 znajduje si© w poniľszej ˜cieľce:type temp.batecho.pausecd\goto end:infoecho.echo Program szuka pliki i katalogi i pokazuje ˜cieľk© do nich.echo.echo Uľyj:echo ff [nazwapliku_lub_katalogu] [dysk]echo.echo np. FF turbo.exe Cpause>nulgoto exit:enddel c:\tools\temp.batcd\:exitcls
Literki się wykrzaczyły, bo to strona kodowa 852 (dos).

Zapisz ten kod jako plik ff.bat i uruchom a zobaczysz, do czego to służy..

 

BTW: Nie znalazłem możliwości wpisywania nazw plików działającemu programowi wsadowemu. Jedyne, co działa to CHOICE.COM, czyli opcje wybierania..

Edytowane przez ULLISSES

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mam takie zadanie aby napisać plik wsadowy

ktory bedzie mial takie menu

1 wyszukiwanie pliku

2 kasowanie pliku

3

4

5 wyjscie

 

no i nie wiem jak zrobic aby po wcisnieciu klawisza mozna bylo wprowadzic tekst

 

narazie zrobiłem sam szkielet ;/

:START@echo offclsecho 1 Wyszukiwanie plikuecho 2 Skasowanie plikuecho 3 Operacje systemoweecho 4 cos tamecho 5 wyjscieecho.choice /c:12345 Wybierz jedna opcje z menu.if errorlevel 5 goto endif errorlevel 4 goto dyskif errorlevel 3 goto systemoweif errorlevel 2 goto deleteif errorlevel 1 goto znajdzgoto end:znajdzecho znajdzpausegoto start:deleteecho kasowanie plikupausegoto start:systemowe	echo 1. wersja systemu	echo 2. czas	echo 3. data	echo 4. powrot do menu:)	choice /c:1234 Wybierz cos.	if errorlevel 4 goto start	if errorlevel 3 goto data	if errorlevel 2 goto czas	if errorlevel 1 goto vsystemu	goto end	:vsystemu	ver	pause	goto systemowe	:czas	time	goto systemowe		:data	date >nul	goto systemowe	goto start:dyskpausegoto start:endecho KONIEC !

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No więc tak, jak napisałem w edycji posta wyżej - nie słyszałem o możliwości wpisywania tekstu do działającego "programu" BAT. Wszystko inne jest do zrobienia.

Swego czasu bawiłem się tym i to wyżej, to jedno z moich dzieł (prawdopodobnie zapożyczone) - wyszukuje pliki.

 

Ktoś, kto zadał Ci takie zadanie, to albo:

a) wie więcej o BAT niż ja

b) wie mniej o BAT niż ja (i wtedy nie wie, iż AFAIK nie da się tego zrobić - wpisywać tekstu)

Edytowane przez ULLISSES

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

napisalem tego bata pod win98 wrzucajac tylko choica do systemu

wyglada to tak :)

rem@echo off:STARTcd\clsecho.echo -----------------------------echo 1 Wyszukiwanie plikuecho 2 Skasowanie plikuecho 3 Operacje systemowe        echo 4 Dyski wirtualne    echo -----------------------------echo 5 Wyjscieecho -----------------------------echo.choice /c:12345 /n Wybierz jedna opcje z menu.if errorlevel 5 goto endif errorlevel 4 goto DYSKif errorlevel 3 goto SYSTEMOWEif errorlevel 2 goto DELETEif errorlevel 1 goto ZNAJDZgoto endrem @@@@@@ znajdz @@@@@@:ZNAJDZcls@echo offecho.echo Podaj nazw© szukanego plikuecho.set/p znajdz=echo.echo -Wynik wyszukiwania:-echo ---------------------echo.dir/s/p/b %znajdz%echo.echo ---------------------pausegoto startrem @@@@@@ delete @@@@@@:DELETEclsecho.echo Podaj scieżkę do kasowanego pliku.echo.set/p name=echo .del %name%goto startrem @@@@@@ systemowe @@@@@@		:SYSTEMOWE	cls	echo.	echo ---------------------	echo 1 Czas	echo 2 Data	echo 3 Wersja systemu	echo ---------------------	echo 4 Cofnij	echo.		choice /c:1234 /n Wybierz jedna opcje z menu.	if errorlevel 4 goto START	if errorlevel 3 goto wsystemu	if errorlevel 2 goto data	if errorlevel 1 goto czas		:czas	cls	echo.	time /t	echo.	echo ---------------------	pause	goto SYSTEMOWE	:data	cls	echo.	date /t	echo.	echo ---------------------	pause	goto SYSTEMOWE	:wsystemu	cls	echo.	ver	echo.	echo ---------------------	pause	goto SYSTEMOWErem @@@@@@ dysk @@@@@@	:DYSK	cls	echo.	echo ---------------------	echo 1 Zaloz dysk wirtualny	echo 2 Usun dysk wirtualny	echo ---------------------	echo 3 Cofnij	echo.		choice /c:123 /n Wybierz jedna opcje z menu.	if errorlevel 3 goto START	if errorlevel 2 goto ddysk	if errorlevel 1	goto mdysk	:mdysk	cls	echo Podaj litere nowo tworzonego dysku wirtualnego.	set/p litera=	echo Podaj sciezke do folderu	set/p sciezka=	subst %litera% %sciezka%	goto DYSK	:ddysk	cls	echo Podaj litere dysku wirtualnego ktory chcesz usunac	set/p litera=	subst %litera% /d	goto DYSK:end
dzieki wszystkim za pomoc

pozdrawiam !

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

napisalem tego bata pod win98 wrzucajac tylko choica do systemu

wyglada to tak :)

set/p znajdz=
Pod win98 polecenie set nie posiada parametru p. Tak wygląda próba jego zastosowania:

Programik

rem startset/p name=echo %name%rem stop
oddaje taki oto efekt
Microsoft(R) Windows 98   (C)Copyright Microsoft Corp 1981-1999.C:\>robotC:\>rem startC:\>set/p name=C:\>echoECHO jest w stanie włC:\>rem stopC:\>C:\>C:\>
Nie ma żadnej przerwy na wpisanie czegokolwiek. Zatem jakiego systemu właściwie użyłeś? Ja np. używam nakładki 4DOS 7.50 (obecnie freeware) ale choć w niej set posiada parametr p, to oznacza on tylko stronicowanie wyników polecenia przy przekroczeniu długości strony.

 

W związku z tym użytkownikom Win98 proponowałbym albo zamontowanie nakładki takiej jak 4DOS, której polecenia (ale nie set) rzeczywiście pozwalają na skonstruowanie pliku wsadowego zdolnego wykonać takie zadanie

@select del (*.*)
albo ściągnięcie starej bety Volkov Commander, bezpłatnej i w dodatku spolszczonej i używanie jej jako nakładki na system. Zajmuje ona zaledwie 45 kb. Edytowane przez makabda

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

pomyliłem się

oczywiście plik choice dodałem do win xp

i zadanie zrobłem właśnie pod xp

aczkolwiek będę jeszcze próbował zrobić je pod win98

bo właśnie pod tym systemem zrobiony plik muszę oddać w szkole

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

pomyliłem się 

oczywiście plik choice dodałem do win xp 

i zadanie zrobłem właśnie pod xp 

aczkolwiek będę jeszcze próbował zrobić je pod win98 

bo właśnie pod tym systemem zrobiony plik muszę oddać w szkole

1733089[/snapback]

Po ponownym przeanalizowaniu warunków zadania (dotyczy systemu win98) stwierdziłem, że daje ono dużo większe możliwości niż wynikałyby one z plików wsadowych w DOS. Wszak system to wszystkie pliki, jakie znajdują się po zainstalowaniu Windows i wgraniu poprawek. Częścią systemu są także takie programy jak np. cscript.exe, w którym można uruchomić po prostu skrypty. Częścią systemu jest także polecenie start za pomocą którego uruchamia się polecenie Windows. W takim ujęciu najprostszy program wsadowy tego typu miałby taką postać:
@start explorer.exe
No a dalej... sam wiesz :D

 

Pytanie więc brzmi: czy warunki zadania obejmują cały system windows, czy też dotyczą wyłącznie tego co jest dostępne po uruchomieniu w trybie "Tylko wiersz poleceń"? Ale nawet wtedy istnieja pewne możliwości manewru. Oto stosowny fragment kodu:

echo set tempu$$= > tempu$$.batedit tempu$$.batcall tempu$$.batdel tempu$$.bat
Nazwa tempu$$.bat jest po prostu dowolną nazwą pliku tymczasowego, w który jest wpisywana nazwa pliku do dalszej obróbki za pomocą edit. Korzystając z edit można też podejrzeć wybrany plik, nawet binarnie, zanim podejmiemy decyzję. Jest to pewien ekwiwalent polecenia set/p tempu$$= z WinXP. W tym przykładzie jest niestety tworzony jest plik tymczasowy... Dlatego też, jeżeli program miałby być uruchamiany z dyskietki, potrzebny byłby także wcześniej utworzony dysk wirtualny. Ale zdaje się, że taka konstrukcja jest uwzględniona podczas tworzenia dyskietki ratunkowej. Trzeba tylko ją odpowiednio zmodyfikować. Edytowane przez makabda

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...