www.promanski.info

Skrypty .BAT, .CMD, .VBS

Różne pożyteczne skrypty (bat, cmd, vbs), które niejednokrotnie wykorzytuję w swojej pracy zawodowej aby ułatwić sobie życie… bo czasem leniwy jestem :-) W zależności od skryptu należy go zapisać jako: *bat, *.cmd, *.vbs.
logo

UWAGA!!! Dział Skrypty jak i sama strona promanski.info nie będą dalej rozwijane. Treści, przykłady skryptów a także komentarze autor strony pozostawia dla potomnych ;-)

dotZdalne dodanie opisu komputera
Jeśli mamy komputery w domenie i nie mamy ich opisów (PPM na Mój komputer, zakładka Nazwa komputera, pole: Opis komputera) a jest on np. niezbędny do identyfikacji sprzętu (użytkownika, lokalizacji, funkcji) można go dodać w niezwykle prosty sposób. Wystarczy połączyć się ze zdalnym rejestrem i wyedytować odpowiedni klucz. Jednak klikanie po gałęziach rejestru nie zawsze jest miłym i ciekawym zajęciem. W związku z tym kawałek skryptu, który ułatwi nam to zadanie.
@echo off
set /p nazwa="nazwa komp: "
set /p opis="opis komp: "
reg delete \\%nazwa%\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment
reg add \\%nazwa%\HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t REG_SZ /d %opis%

Objaśnienia:
- Nazwa komp – podajemy nazwę komputera w domenie / grupie roboczej
- Opis komputera – to właśnie ta część odpowiada za opis. W przypadku nazwy wieloczłonowej umieszczamy ją w cudzysłowach (cudzysłowiu?)
- reg delete – na wszelki wypadek skrypt usuwa odpowiedni klucz rejestru
- reg add – a w tym miejscu dodaje odpowiedni klucz z parametrem opisu komputera
Zmiany będą widoczne po restarcie systemu.

dotLogin Script – akcja na wybranych użytkownikach domeny
Zarządzanie użytkownikami i ich zasobami bywa czasem męczące. Poziom umiejętności korzystania z komputer bywa różny, dlatego też czasem najprostsza czynność jaką jest instalacja drukarki sieciowej bywa problemem. Oczywiście można połączyć się zdalnie z daną maszyną i wyklikać użytkownikowi drukarkę. Jednak łatwiej jest to zrobić za pomocą login scriptu domeny.
Na kontrolerze domeny istnieje folder NETLOGON, w którym znajdują się skrypty logowania, np. mapowanie zasobów, synchronizacja czasu itp. Skrypt taki jest wykonywany przy każdym logowaniu użytkownika. W związku z tym łatwo jest w jednym miejscu zarządzać procesem wykonania skryptu dla całej domeny. Postanowiłem napisać niewielki kawałek kodu, który na podstawie listy użytkowników zawartej w pliku txt, będzie wykonywał określoną akcję na jego koncie, np. mapowanie drukarki sieciowej.

@echo off
echo/%USERNAME%|findstr/ig:"usernamelist.txt">nul&&(goto istnieje)||(goto niema)
:istnieje
echo Na liscie istnieje uzytkownik: %username%
findstr.exe /V /I /C:%username% usernamelist.txt>usernamelist.tmp
del usernamelist.txt
ren usernamelist.tmp usernamelist.txt
goto :EOF
:niema
echo Brak uzytkownika: %username% na liscie
goto :EOF

Wyjaśnienie:
Druga linia skryptu sprawdza w pliku usernamelist.txt czy logujący sie uyżytkownik istnieje na liście, jeśli go nie ma przechodzi do sekcji :niema, jeśli jest przechodzi do sekcji :istnieje. W tej sekcji wyświetlane jest informacja o istnieniu użytkownika (można ją zastąpić dowolną akcją – np. instalacja drukarki sieciowej) a następnie aktualizowany jest plik usernamelist.txt, w którym usuwany jest logujący się użytkownik (tak aby po koljenym logowaniu nie wykonywała się ta sama akcja na jego koncie). Oczywiście do skryptu można dołożyć obsługę błędów, np. jeśli dana drukarka nie będzie dostępna, nie będzie możliwości jej zainstalowania czy użytkownik nie będzie miał wystarczjących uprawnień. W takim przypadku skrypt będzie mógł powtórzyć działania i np. wysłac mail do administratora z informacją o błędzie. Plik usernamelist.txt powinien mieć postać:

userlogin1
userlogin2
userloginBBB
....
....
userloginXYZ

dotDzień tygodnia jako katalog – Wyświetlanie dnia tygodnia i tworzenie katalogu z nazwą dnia tygodnia. Próbowałem kiedyś sposobu wyciągnięcia daty, dnia tygodnia z ustawień regionalnych. Pomysł był chybiony bo w zależności od ustawień ze skryptem i jego wynikiem działy się różne rzeczy na różnych komputerach. Dlatego też można wykorzystać uniwersalny skrypt, który tworzy katalog w nazwie zawierający dzień tygodnia. Opcja ciekawa dla wszystkich, którzy wykonują w pracy, domu codzienne kopie danych. Poniższy skrypt należy zapisać jako *.bat.
@echo off & setlocal enableextensions
echo>dzien.vbs WScript.Echo WeekDayName(Weekday(Date),true)
for /f %%d in ('cscript //nologo dzien.vbs') do set wd_=%%d
rem ponizsza komenda wyswietli dzien tygodnia na ekranie
echo Weekday wd_=%wd_%
rem utworzenie katalogu
md %wd_%
del dzien.vbs
rem pauza - tak na wszelki wypadek :)
pause

dotKamikaze – kopiuje określoną zawartość do samego siebie. Skrypt przydatny przy zamazywaniu dysku, choć może trwać to dość długo przy obecnej wielkości dyskach. W skypcie w miejscu tu jakis tekst można wpisać dowolny ciąg znaków i należy go zapisać pod nazwą skrypt.bat
:start
echo tu jakis tekst >> skrypt.bat
goto start

dotArchiwizacja za pomocą konsoli RAR
Użytkownicy WinRARa nie muszą koniecznie wykorzystywać graficznego interfejsu do sporządzania kopii bezpieczeństwa danych. WinRAR oferuje również doskonałą współpracę wykorzystując wiersz poleceń. Dodatkowym atutem wykorzystania WinRARa z wiersza poleceń jest to, że może być stosowany w skryptach archiwizacyjnych, które można uruchamiać z Zaplanowanych zadań systemu Windows. Dodatkowo plik RAR.exe może być na danym komputerze całkowicie odrębną aplikacją, którą możemy umieścić np. w katalogu ze skryptem (dzięki temu nie będzie konieczne odwoływanie się do ścieżki instalacyjnej WinRAR).
Pomoc w opanowniu składni “dosowego” RARa jest wyświetlana po wykonaniu w wierszu poleceń komendy: rar /?. Ogrom opcji może przerazić, jednak po głębszym wczytaniu się okazuje się, że pomoc jest doskonała. Poniżej przedstawiam przykładowe skrypty, które wykorzystuje w swojej pracy do wykonywania kopii danych.
echo off
cls
rar.exe u -m4 -ep1 e:\Archiwum\archiwum1 d:\Dane1
cls
rar.exe u -m5 -ep2 e:\Archiwum\Archiwum2 "d:\Moje dokumenty"
cls
rar.exe u -m2 -ep3 e:\Archiwum\Archiwum3 "C:\Documents and settings\fascik\Pulpit"
cls

Objaśnienie poszczególnych opcji:
- rar.exe – uruchamiany moduł WinRARa z wiersza poleceń,
- u – aktualizuje pliki, jeśli archiwizacja nie była wykonywana to RAR po prostu pominie ten parametr,
- -m4, -m5, -m2 – stopień kompresji, zakres od 0..5,
- -ep1, -ep2, -ep3 – parametry odnoszące się do ścieżek archiwizowanych danych (więcej informacji w pomocy RAR.exe),
- e:\Archiwum\archiwum1, Archiwum2, Archiwum3 – określa nazwy poszczególnych archiwów (oczywiście można wszystkie dane pakować do jednego archiwum),
- d:\Dane1, “d:\Moje dokumenty”, “C:\Documents and…” – określa archiwizowane katalogi z danymi, (cudzysłowy w dwóch ostatnich składniach występują po to by RAR.exe pobierał poprawnie ścieżki do danych).
Oczywiście oprócz wymienionych poleceń dostępnych jest wiele innych znanych z graficznego modułu WinRARa, są to m.in. naprawa archiwum, konwersja do SFX, zakładanie haseł itd. Skopiowaną składnię należy zapisać jako plik *.bat.

dotOdtwarzanie dźwięku po wykonanej archiwizacji
Ciekawą opcją może być również dodanie dźwięku, który będzie odtwarzany po zakończeniu archiwizacji. Efekt taki uzyskamy poniższą składnią:
start /i /min sndrec32.exe -play -close "D:\Archiwum\done.wav"
exit

Objaśnienia:
start – uruchamia oddzielne okno w celu wykonania programu lub polecenia,
/i – nowym środowiskiem będzie oryginalne środowisko przekazane do programu cmd.exe, a nie bieżące środowisko,
/min – uruchamia zminimalizowane okno,
sndrec32.exe – uruchamia Rehjestrator dźwięku Windows,
-play – odgrywa dźwięk w sndrec32.exe,
-close – zamyka sndrec32.exe po odegraniu dźwięku,
“D:\Archiwum\done.wav” – ścieżka do pliku z dźwiękiem.
Powyższy skrypt można dopisać na końcu skryptu archiwizacji danych.

dotUstawianie proxy dla Windows
Czasem zachodzi potrzeba przekonfigurowania Ustawień sieciowych w systemach Windows. O ile w sieci jest kilka komputerów nie jest problemem przejście i ustawienie wszystkich odpowiednich danych. Co zrobić jeśli komputerów jest kilkaset i chcemy zmienić wszystkim ustawienia proxy? Wystarczy wykorzystać fragment rejestru oraz prosty skrypt *.bat.
Najpierw należy sciagnąć plik proxy.reg i wyedytować “ProxyServer”=”10.0.0.1:8080″ wpisując własny adres serwera proxy i port oraz “ProxyOverride”=”10.0.0.2;poczta; wpisująć wyjątki adresów lokalnych. Następnie ściągnąć proxy.bat, w którym powinny znaleźć się następujące wpisy:
regedit /s proxy.reg
Ostatnie dwie linie pliku proxy.reg pozwalają na ustawienie jednakowej strony startowej w IE na wszystkich komputerach.
Oba pliki: proxy.reg i zapisany plik *.bat należy umieścić w jednym folderze a następnie dodać plik *.bat do skryptów logowania.

dotSkrypt PSEXEC i Friendly Pinger 5.0
Friendly Pinger 5.0 posiada Zasobnik, który pozwala na ściąganie informacji o sprzęcie i zainstalowanym oprogramowaniu z komputera lokalnego ale również z komputerów zdalnych. Aby móc ściągnąć dane z komputerów zdalnych należy posłużyć się programem psexec.exe oraz Collect.exe (program znajduje się w katalogu instalacyjnym Friendly Pinger), następnie napisać prosty skrypt o następującej składni:
psexec.exe \\IP_1 -u ADMIN -p HASLO -c collect.exe "-s:IP_2"
Objaśnienia:
IP_1 – adres IP komputera, którego dane chcemy ściągnąć
ADMIN – konto z uprawnieniami administratora na komputerze zdalnym
HASLO – hasło administratora na komputerze zdalnym
IP_2 – adres IP komputera, na którym zainstalowany jest FP
Dodatkowo we Friendly Pinger w menu Zasobnik – Opcje Zasobnika – Zbieranie – Collect.exe należy ustawić adres IP komputwera, do którego będą spływały informacje (czyli adres IP_2).

dotPobieranie daty
Skrypty działają pod Windows 2000, pod Windows XP struktura skryptu jest trochę inna ponieważ “date /t” zwraca RRRR-MM-DD. Dlatego już samodzielnie dopasujcie zasadę pozyskiwania daty i czasu do tego systemu :-)
Często zdarza się, że potrzebujemy stworzyć katalog, któego nazwa będzie zawierała aktualną datę lub czas (albo jedno i drugie). Jeśli pewne polecenia (np. archiwizację) wykonuje za nas skrypt to nie ma prostego sposobu na zautomatyzowanie tworzenia takich katalogów. Można jednak wykorzystać komendy wiersza poleceń date i time.Odpalamy wiersz poleceń i wpisujemy:
date /t
Objaśnienie:
- date – bez parametrów pozwala na ustawienie nowej daty
- /t – pozwala na wyświetlenie bierzącej daty na ekranie
Wynikiem polecenia date /t może być wynik:
Śr 2005-07-27
Czas na objaśnienia, które pozwolą łatwiej zrozumieć dalszą część tworzenia skryptu. Jak widać wynik składa się z 13 znaków, wliczając w to kreski i spację. Napiszemy skrypt, który stworzy katalog i w nazwie będzie miał bieżący rok.
md %date:~3,4%
Objaśnienie:
md – tworzy katalog
date – pobiera datę z polecenia date
~3,4 – które cyfry i ile cyfr z wynikowego działania date /t ma pobrać
W powyższym przykładzie zastosowałem pobieranie do nazwy katalogu czterech cyfr składających się na rok. Jak już wcześniej wspomniałem polecenie date /t zwraca 13 znakowy wynik, który wykorzystaliśmy w skrypcie. Cyfra 3 oznacza, od którego miejsca skrypt zacznie pobierać znaki z date /t. Istnieje jednak mały haczyk, ponieważ liczenie zaczyna się od pozyckji 0 a nie 1. Dlatego też w przytoczonym wyżej przykładzie: Śr 2005-07-27 pozycja zerowa to litera Ś, pozycja pierwsza to r, pozycja druga to spacja i pozycja trzecia (od której zaczyna się pobieranie znaków) to cyfra 2. Z kolei cyfra 4 w powyższym skrypcie oznacza ile kolejnych znaków skrypt ma pobrać.
Czas na kolejny przykład, w którym pobierzemy rok oraz miesiąc i stworzymy katalog o tej nazwie.
md %date:~3,7%
Po wykonaniu skrypt powinien zostać utworzony katalog o nazwie 2005-07.
Krótkie objaśnienie: cyfra 3 oznacza, że skrypt pobiera 3 znak z date /t zaczynając liczyć od 0 a następnie pobiera kolejne siedem znaków. Kolejne siedem znaków w naszym przypadku to następujące znaki: “2000-07″. Jak łatwo zauważyć znak “-” również jest liczony jako kolejna pozycja i kolejny znak.
Stwórzmy katalog, którego nazwa będzie zawierać pełną datę (rok, miesiąc i bieżący dzień). W tym celu wykonujemy skrypt:
md %date:~3,10%
Po wykonaniu skrypt powinien zostać utworzony katalog o nazwie 2005-07-27, czyli zawierający bieżącą datę. Oczywiście można dowolnie modyfikować skrypt, np. jeśli chcemy wykonywać kopie misięczne danych w określonych dniach. W tym celu wystarczy wykonać następujący skrypt:
md %date:~3,4%-%date:~11,2%
Powyższy skrypt pobierze 4 cyfry oznaczające rok oraz przejdzie do pozycji 11 (licząc dane z date /t od zera) i pobierze dwa znaki oznaczające dzien miesiąca.

dotPobieranie czasu
Pobieranie czasu do skryptu jest równie proste ;-) jak w przypadku daty. Jednak w dacie występują pewne ograniczenia, o których za chwilę. Polecenie time /t w wierszu poleceń zwraca przykładowy wynik:
13:22
Postępowanie z tworzeniem skryptów jest podobne, jednak jak łatwo zauważyć w godzinie występuje znak “:”, który nie może być użyty jako nazwa katalogu, dlatego też należy posłużyć się pewnym obejściem. Na razie stwórzmy katalog, którego nazwa będzie godziną:
md %time:~0,2%
Po wykonaniu skryptu powinien pojawić się folder o nazwie bieżącej godziny. Postępowanie jest podobne, czyli skrypt pobiera od miejsca zerowego 2 pierwsze cyfry. Teraz weźmy na warsztat minuty, stwórzmy skrypt, który stworzy katalog o nazwie jako bieżące minuty:
md %time:~3,2%
Po wykonaniu skryptu powinien pojawić się folder o nazwie bieżącej minuty (minut).
A poniżej najciekawsza część skryptu. Jak stworzyć folder z bieżącą godziną i minutami? Jak wspomniałem znak “:” nie może zostać użyty w nazwie folderu i stworzenie skryptu:
md %time:~0,4%
zwróci błąd. Dlatego też należy użyć innego znaku zamiast “:”, a składnia skryptu będzie wyglądać nastepująco:
md %time:~0,2%-%time:~3,2%
Zamiast znaku “:” został użyty “-”, oczywiście można go zastąpić innym dozwolonym w nazwach plików i folderów znakiem.
Inne wskazówki
Jeśli często w skrypcie będziemy wykorzystywać tworzenie folderów warto stworzyć zmienne, do których będziemy odwoływać się w skrypcie. Można to zrobić w następujący sposób:
set czas=%time:~0,2%-%time:~3,2%
md %czas%

set data=%date:~3,10%
md %data%

Może się wydawać, że składnie skryptów są dość skompikowane, jednak po kilku stworzonych skryptach możemy opanować ich pisanie i tworzenie w ten sposó katalogów z datami i godzinami w nazwach.

dotPing określonego zakresu adresów IP
Niekiedy zachodzi potrzeba sprawdzenia dostępności określonego zakresu adresów IP. Polecenie ping dostępne w Windows pozwala na pingowanie tylko jednego adresu IP. Co zrobić jeśli chcemy sprawdzić dostępne komputery w danej sieci? W tym celu wystaczy użyć narzędzia wpsweep, które pozwala na pingowanie określonego zakresu adresów IP. Składnia narzędzia jest nadzwyczaj prosta:
wpsweep [start IP] [stop IP] [czas ms]
Objaśnienia:
[start IP] – adres IP początkowy, od którego zaczynamy pingowanie
[stop IP] – adres IP końcowy
[czas ms] – czas w milisekundach jaki wpsweep będzie czekał na odpowiedź.

Przykład wykorzystania wpsweep:
wpsweep 10.0.0.1 10.0.0.254 10
W powyższym przykładzie sprawdzimy dostępność adresów IP z zakresu 10.0.0.1-254, a wpsweep będzie czekał 10ms na odpowiedź od każdego z urządzeń w sieci. Jeśli czas odpowiedzi będzie dłuższy wpsweep uzna urządzenie jako nieobecne w sieci.

dotWykrywanie systemu operacyjnego
W skrypcie tworzącym folder z określoną datą wspomniałem, że w Windows XP ustawienia daty są inne, więc aby dokonać archiwizacji należałoby pisać dwa oddzielne skrypty dla Windows 2000 i Windows XP. Można to jednak zrobić za pomocą jednego skryptu. Wystarczy tylko napiać prosty skrypt wykrywający dany system operacyjny. W zalezności od systemu skrypt przekieruje się do sekcji gdzie można umieścić dalsze komendy, które ma wykonać. Oto skrypt:

@ECHO OFF
VER | find "XP" > nul
IF %errorlevel% EQU 0 GOTO winxp
VER | find "2000" > nul
IF %errorlevel% EQU 0 GOTO win2k
VER | find "NT" > nul
IF %errorlevel% EQU 0 GOTO winnt
ECHO Twoj system nie jest obslugiwany
GOTO :END
:winxp
ECHO Tu mozna wstawic skrypty odnoszace sie do Windows XP
goto :END
:win2k
ECHO Tu mozna wstawic skrypty odnoszace sie do Windows 2000
goto :END
:winnt
ECHO Tu mozna wstawic skrypty odnoszace sie do WINNT
goto :END
:END
pause

Całość sprowadza się do edytowaia sekcji: :winxp, win2k, winnt i wpisania zamiast ECHO Tu mozna wstawić skrypty odnoszace sie do… swoje własne komendy.

dotJeszcze inny sposób na katalog z datą w nazwie
Ciągle poszukuję uniwersalnego sposobu na tworzenie katalogu z datą/czasem w nazwie. Niestety wszstkie sposoby, które znajduję opierają się o date i time. Poniżej kolejny sposób – bardziej elegancko wyglądający. Skrypt działa poprawnie w Windows 2000 Pro PL i tworzy katalog w formacie: YYYY-MM-DD-DZIEN_TYGODNIA-GG-MM. W Windows XP Pro PL niezbędne będą zmiany kosmetyczne w zależności od sposobu wyświetlania daty przez polecenie date /t. Należy wtedy zmienić tokens= i set DYEAR, set DDAYW itd
@echo off
for /f "tokens=2 delims=^/- " %%i in ('date /t') do set DYEAR=%%i
for /f "tokens=1 delims=^/- " %%i in ('date /t') do set DDAYW=%%i
for /f "tokens=3 delims=^/- " %%i in ('date /t') do set DMONTH=%%i
for /f "tokens=4 delims=^/- " %%i in ('date /t') do set DMDAY=%%i
for /f "tokens=1 delims=^/: " %%i in ('time /t') do set THOUR=%%i
for /f "tokens=2 delims=^/: " %%i in ('time /t') do set TMIN=%%i
set katalog=%DYEAR%-%DMONTH%-%DMDAY%-%DDAYW%-%THOUR%-%TMIN%
md %katalog%

dotSprawdzanie uruchomionego programu
Niektóre programy DOSowe; w szczególności pisane w Clipperze; nie lubią gdy je się uruchamia dwa razy w tym samym czasie. Co zrobić aby “odporny na wiedzę” użytkownik nie odpalał dwa razy tego samego programu? Wystarczy odpowiednio zmodyfikować skrót do programu i napisać batcha.

:: skrypt sprawdzaiajcy dzialanie programu
@echo off
TLIST | FIND "notepad.exe" /i
IF %errorlevel% EQU 0 goto TAK
ECHO OK..odpalam program
notepad.exe
GOTO :END
cls
:TAK
cls
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo ş ş
echo ş ! ! ! UWAGA ! ! ! ş
echo ş ş
echo ş Masz juľ uruchomionĄ jednĄ kopi© programu. ş
echo ş ş
echo ş Za 15 sekund nastĄpi zamkni©cie tego okna. ş
echo ş ş
echo ş Zamknij kopi© programu ş
echo ČÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍĽ
:: wykorzystannie timeout.exe aby poczekal na zamkniecie okna - nie jest konieczne
timeout.exe 15
:END

Powyższy skrypt sprawdza czy jest uruchomiony notepad.exe(Notatnik), jeśli nie jest to go odpali (sprawdzanie za pomocą tlist.exe z pakietu Resource Kit), jeśli program jest uruchomiony to wyświetli komunikat i odczeka 15 sekund (timeout.exe) i zamknie okienko skryptu.

Skrypt zapisać jako plik z rozszerzeniem *.BAT i ewentualnie dopisać pozostałe polecenia związane z uruchamianym programem.

dotInterakcja z uzytkownikiem – tworzenie katalogu – skrypt pyta o nazwę katalogu
Jeśli chcemy podczas wykonywania skryptu sami utworzyć katalog można to zrobić za pomocą poniższego przykładowego kodu:

@echo off & setlocal enableextensions
set /P katalog="Wpisz nazwe katalogu:"
if exist %katalog% echo %katalog% istnieje! & goto :END
MD %katalog%
:: ewentualnie mozna tworzyc dodatkowe katalogi
:: MD %katalog%\JAKIS_KATALOG\JAKIS_POTDKATALOG
:END
exit

Skrypt zapisać jako .BAT lub dołączyć do własnego skryptu.

dotSzuka plików o określonym rozszerzeniu i kopiuje je do wskazanej lokalizacji
Skrypt tworzy na dysku D katalog Nowy Folder, nastepnie na dysku C wyszukuje wszystkie pliki z rozszerzeniem TXT i kopiuje je do katalogu “D:\Nowy Folder”.

@echo off
md "d:\Nowy Folder\"
for /f "delims=" %%a in ('dir "c:\*.txt" /s/a/b ^| find /i ".txt"') do (
copy "%%a" "d:\Nowy Folder\"
)

dotWyświetlanie pustych linii w skryptach
Pewnie wielu z Was ma problem jak wyświetlić pustą linię (odstęp pomiędzy liniami). Samo echo nic nie daje. Rozwiązanie jest banalnie proste, wystarczy dodać “:” po echo.
@echo off
echo tekst, pod ktorym jest linia odstepu
echo:
echo nad tym tekstem jest pusta linia

dotNiby Komunikator
Prosty komunikator LAN w oparciu o usługę Posłaniec.
@echo off
:WIADOMOSC
cls
echo Wyslij wiadomosc
:: Poniżej podajemy uzytkownika, nazwę komputera w sieci lub jego adres IP
set /p u=Uzytkownik/Adres IP/Nazwa komputera:
:: Poniżej podajemy wiadomość
set /p w=Wiadomosc:
net send %u% %w%
pause
goto WIADOMOSC

Całość zapisać jako plik z rozszerzeniem BAT i (jeśli tego nie zrobiliście wcześniej) odpalić usługę Posłaniec.

dotKolorowy wiersz poleceń
Jeśli chcesz by skrypt, który napisałeś/-aś wyglądał ładnie można mu dodać kolorków… są dwie metody – jedna to zabawa z ansi.sys druga, bardziej prosta to użycie jednego z programów TSCMD. Dokładniej chodzi o echoc.exe.
Jego składnia jest bardzo prosta. Podajemy komendę echoc a następnie dwie wartości od 0-15.
np. echoc 1 12
Pierwsza wartość liczbowa to kolor tła, druga wartość to kolor tekstu.
Przykładowy skrypt:

@echo off
echoc 0 1 12345
echo.
echoc 0 2 12345
echo.
echoc 0 3 12345
echo.
echoc 2 12 12345
echo.
echoc 3 11 12345
echo.

Dzięki temu otrzymamy ładne kolorki w skypcie.

dotPowtarzanie okeślonej czynności

Przydatne gdy np. chcesz kontrolować działanie serwera. Ustawiasz sobie poniższy skrypt, który pinguje co określony czas (za pomocą timeout.exe z pakietu ResourceKit dla Windows NT). Ewentualnie w przypadku braku odpowiedzi można ustawić określoną akcję.

@echo off
:loop
:: ponizej czynnosc, ktora chcesz wykonac
ping desktop
:: zatrzymanie na 10s.
timeout 10
::powrot do loop
goto loop

Plik zapisać jako CMD lub BAT.

dotTworzenie katalogów z listy
Jeśli chcesz stworzyć dowolną ilość katalogów o różnych nazwach to wystarczy, że ich nazwy będziesz miał w pliku tekstowym (każda nazwa w kolejnym wierszu) i storzysz skrypt:

@echo off
for /f "delims=" %%a in (PLIK_Z_NAZWAMI.txt) do md "%%a"

PLIK_Z_NAZWAMI.txt – plik z nazwami katalogów. Skrypt zapisujemy jako CMD lub BAT. Skrypt oraz plik tekstowy powinny znaleźć się w jedym katalogu.

dotWykonanie akcji na kilku komputerach jednocześnie
Jeśli musisz np. skopiować ten sam plik na kilka komputerów jednocześnie. Wystarczy prosty kawałek kodu i plik TXT z listą komputerów:

@echo off
for /f "delims=" %%a in (lista_komputerow.txt) do (
copy "PLIK_DO_PRZEKOPIOWANIA" "\\%%a\C$\"
)

lista_komputerow.txt – plik z nazwami/adresami IP komputerów
PLIK_DO_PRZEKOPIOWANIA – coś co chcemy wrzucić na wszystkie komputery
“\\%%a\C$ – lokalizacja gdzie ma być wrzucony plik – najlepiej robić to przez udostępnienie administratorskie C$

Oczywiście skrypt może mieć całkiem inne przeznaczenie:

@echo off
for /f "delims=" %%a in (lista_komputerow.txt) do (
akcja_jaką_chcemy_podjąć
)

Dokładniej rzecz ujmując to może to być np. ping wszystkich stacji w sieci, itp…

dotUkrycie okna wykonywanego skryptu
Jeśli chcesz by okno, w którym jest wykonywany skrypt. Sama opcja minimalizacji nie jest dostatecznie dobra, bo zawsze można przywrócić okno i np. zatrzymać skrypt.
Jeśli chcesz całkowicie ukryć okno wystarczy prosty kawałek VBS-a:
Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /C nazwa_twojego_skryptu.bat",0
Set oShell = Nothing

I zapisać go z rozszerzeniem *.VBS. Razem ze skryptem VBS musi znaleźć się Twój BAT lub CMD. W skrypcie VBS podajemy nazwę skryptu BAT lub CMD w miejscu nazwa_twojego_skryptu.bat.
Teraz aby uruchomić skrypt BAT, CMD wystarczy odpalić VBS-a. Żadne okno nie pojawi się podczas wykonywania skryptu. Metoda jest dobra np. przy skryptach logowania i mapowaniu dysku z innymi uprawnieniami, gdzie np. pojawia się hasło.

dotSzukarek
Artur podesłał ciekawy skrypt pozwalający na wyszukiwanie 4 rodzajów plików (odt, ods, doc, xls), które następnie są kopiowane do katalogu, którego nazwę podamy. W wersji źródłowej skrypt przeszukuje cały dysk C i wyniki wyszukiwania kopiuje do katalogu Documents and Settings\All users\Pulpit\NASZA_NAZWA_KATALOGU. Dodatkowo skrypt po zakończeniu przeszukiwania odtwarza dźwięk C:\WINDOWS\Media\ding.wav, jesli ktoś ma instalację w innym folderze to trzeba pozmianiać ścieżki.

Szukarek to szybki i ciekawy sposób na znalezienie na dysku dokumentów np. podczas archiwizacji czy też porządkowaniu danych. Nic nie stoi na przeszkodzie by rozszerzyć jego możliwości o poszukiwanie innych plików.

Plik źródłowy można pobrać stąd. Najnowsze wersje skryptu Artur publikuje na mini-forum w dziale Skrypty

dotMonitor prędkości połączenia sieciowego
W napisaniu skryptu pomagało kilka osób i w końcu się udało. Brakowało mi czegoś takiego podczas kontrolowania procesu backupu danych z jednego serwera na drugi – a nie chciało mi się łączyć przez soft do zdalnej administracji. Skrypt moinitoruje prędkość połączenia w bajtach i kilobajtach (download i upload) i wyświetla ilość danych odebranych i wysłanych.

:: skrypt wyswietla predkosc z jaka dane przechodza przez interfejs sieciowy
@echo off
set startrxd=
set startsent=
set rrxd=
set rsent=
set rxd=
set sent=
cls
:top
cls
:: pobieranie informacji
for /f "tokens=2,3 delims= " %%a in ('netstat -e ^| find /i
"bajty"') do (
set STARTrxd=%%a
set STARTsent=%%b)
echo.
echo.
echo Poczekaj chwile, zbieram dane...
ping localhost -n 3 | find /i "from" > nul
:go
for /f "tokens=2,3 delims= " %%a in ('netstat -e ^| find /i
"bajty"') do (
set rxd=%%a
set sent=%%b)
set /a Rrxd=%rxd%-%STARTrxd%
set /a Rsent=%sent%-%STARTsent%
if DEFINED prerxd (set /a rxdbps=%rrxd%-%prerxd% && set /a rxdKbps=%rxdbps%/1024)
if DEFINED present (set /a sentbps=%rsent%-%present% && set /a sentKbps=%sentbps%/1024)
cls
echo.
echo.
if /i "%Rrxd%" LEQ "0" echo Odebrano: brak zmian
::download w bajtach na sekunder
if DEFINED prerxd (echo Odebrano: %rrxd% z predkoscia %rxdbps% bajtow/s)
::download w kilobajtach na sekunde
if DEFINED prerxd (echo Odebrano: %rrxd% z predkoscia %rxdKbps% kB/s)
::upload w bajtach na sekunde
if DEFINED present (echo Wyslano: %rsent% z predkoscia %sentbps% bajtow/s)
::upload w kilobajtach na sekunde
if DEFINED present (echo Wyslano: %rsent% z predkoscia %sentKBps% kB/s)
if /i "%Rsent%" LEQ "0" echo Wyslano: brak zmian
ping localhost -n 2 | find /i "from" > nul
set prerxd=%rrxd%
set present=%rsent%
goto :go

dotKopiowanie określonych plików znajdujących się na liście
Czasem chcesz skopiować tylko określone pliki, np. z jedym rozszerzeniem lub masz mnóstwo plików a chcesz tylko te zaczynające się na literę “b”. Nic prostszego – zrzuć sobie listę plików za pomocą komendy:
dir /b *.txt >lista.txt
Komenda ta pozwoli na zrzucenie nazw wszystkich plików w bieżącym katalogu do pliku lista.txt, następnie można wyedytować plik pod względem założonych przez nas kryteriów i w końcu odpalić nasz skrypt:
@echo off
for /f "tokens=*" %%i in (lista.txt) do copy "%%i" c:\temp\

Skrypt skopiuje tylko pliki znajdujęce się w lista.txe do katalogu C:\temp

dotZmiana rozmiaru okna wiersza poleceń
Jeśli do wykonania skryptu potrzebne Ci jest mniejsze okno wystarczy na początku kodu wpisać kilka linii kodu:
@echo off
mode con:cols=25 lines=3
title Male okno
echo takie male okno
label c: >nul 2>&1

Słowo wyjaśnienia: cols=25 – określa liczbę kolumn, lines=3 – określa liczbę wierszy. Domyślnie wiersz poleceń składa się z 80 kolumn i 25 wierszy.

Ilość komentarzy: 985 do “Skrypty .BAT, .CMD, .VBS”

  1. mam do was putanie jak zabespieczyc hasłem CMD.exe bo wyjerzdzam a jeden gosciu przypijnyje mi mieszkanie i niechca zeby mi tam wlazil jak ktos wie niech napisze robert.kibic@interia.pl z gory dzieki;)

  2. Jeśli masz partycję NTFS to wystarczy w Zabezpieczeniach CMD.EXE odmówić np. uruchamiania CMD.EXE. Ewentualnie jeśli koleś należy do grupy użytkowników zaawansowanych to odmówić całej grupie możliwość uruchamiania CMD.EXE

  3. Moglbys jeszcze napisac jak to zrobic bo ja nienaleze do urzytkownikow zbyt zawansobanych. dzieki za odpowiedz:)

  4. Przejdź do katalogu SYSTEM32 (C:\Windows\ lub C:\WINNT) i tam szukaj pliku CMD.EXE, kliknij jego właściwości i na karcie Zabezpieczenia odmów np. wykonywania pliku konkretnej grupie osób lub danemu uzytkownikowi.

  5. Witam
    mam pytanko – w jaki sposób w skrybcie rozwiązać tworzenie katalogu z nazwa o którą skrypt zapyta podczas tworzenia.

  6. Daniel specjalnie dla Ciebie przykład powyżej: “Interakcja z uzytkownikiem – tworzenie katalogu”

  7. Mam taki problem:
    chcem napisać skrypt, który zkopiuje pliki np. z C:\1 do katalogu …\floder\cel. Korzystając z ‘find’ uzyskujemy pełną ścieżkę “…\folder\cel” (jest to np. D:\folder\cel) i kopiujemy pliki. Teoretycznie, w praktyce nie mogę tego napisać :(
    I jeszcze coś: jest możliwość wyboru ścieżki w przypadku gdy występują więcej niż dwa wyniki tego szukania?

  8. Do tego wystarczy polecenie XCOPY. Jeśli dobrze rozumiem to chcesz przekopiować pliki z katalogu C:\1 do katalogu D:\folder\cel ?

  9. Prawie; “…\folder\cel” najpierw musi być znaleziony, a wynikiem tego szukania może być D:\folder\cel, jak również E:\1\a\folder\cel

    Np: copy C:\1\*.* ( find .\folder\cel )
    find zwraca pełną ścieżkę, po czym kopiowane są tam pliki. Mam nadzieję, że ten “pseudo kod” dobrze tłumaczy mój problem.

  10. Dzięki za pomoc
    pozdrawiam

  11. Hmmm… nie do końca potrafię to zrobić, jednak sprawdź poniższy kod. Skrypt będzie szukał tylko na jednej partycji.
    @echo off & setlocal enableextensions
    cd\
    set /P znajdz="Podaj nazwe do wyszukania: "
    dir /S /B /A:D |find /I "%znajdz%"
    set /P kopiuj="Gdzie skopiowac: "
    set /P co="Co skopiowac: "
    xcopy /E /I /Q /H %co% %kopiuj%

    Ewentualnie dopisać do kodu coś takiego:

    D:
    dir /S /B /A:D |find /I "%znajdz%"

    Wtedy skrypt będzie wyglądał tak:

    cd\
    set /P znajdz="Podaj nazwe do wyszukania: "
    dir /S /B /A:D |find /I "%znajdz%"
    D:
    dir /S /B /A:D |find /I "%znajdz%"
    set /P kopiuj="Gdzie skopiowac: "
    set /P co="Co skopiowac: "
    xcopy /E /I /Q /H %co% %kopiuj%

    Dzięki temu uzyskasz możliwość przeszukania również partycji D:.

    Nie wiem czy dokładnie o to Ci chodziło….

  12. Niestety ‘find’ nie zwraca wyniku swojego szukania; wobec tego wynik tego szukania trzeba będzie przepisywać i zapisywać do jakiejś zmiennej (jak zwykle namieszałem…)
    Nie takiego efektu oczekiwałem, mimo wszystko dziękuję za pomoc!!

  13. zgdza się, dlatego zdziwiło mnie w jaki sposób chcesz szukać w ten spsób. Można zmodyfikować to co napisałem powyżej i spróbować np. ponumerować wyniki (jako zmienne)….

  14. jak uworzyć w WIN XP na pulpicie skrót do pliku *.bat o włściwoscich takich samych jak WIN 98. Tworzenie go takimi sposobami jak w 98 daje skrót o innych właściwosciach
    Będę wdzieczny za odpowiedź.

  15. nie do końca rozumiem Twoje pytanie. Tworzysz skrót a nastepnie edytujesz jego właściwości.

  16. Chodzi o skrót do pliku *.bat – zakładki po otwaciu “właściwości” takiego skrótu są inne zakładki do pliku *.exe. Oczywiście jest tak w WIN XP. Jest to potrzebne mi do uruchomienia programu za pomosą pliku wsadowego np. start.bat.

  17. No i prawidłowo, plik exe posiada całkowicie inne własciwości niż bat. A co dokładnie chcesz zmienić w tym pliku bat?

  18. Witam ponownie
    Mam następujący problem
    na jednym sprzecie z win XP działaja mi pliki wsadowe z poleceniami Choice natomiast na innym nie – komunikat – choice nie jest poleceniem wewnetrzym… itd Co może być tego przyczyną?
    Dzięki z góry za pomoc

  19. polecenie “choice” nie jest domyślnie zaimplementowane w systemie. Musisz je po prostu skopiować w odpowiednie miejsce i w skrypcie zrobić do niego odwołanie podając odpowiednią ścieżkę. chocie.exe to jeden ze składników pakietu Resource Kit.

  20. Kapitalne! Wielkie dzięki! Coś tam umiem w BAT’cie wyskrobać, ale coś niecoś się z tych przykładów nauczyłem. No i zawsze miło przyjść na gotowe. Liczę na dalszy rozwój tego artykułu… :D

  21. Cały czas coś tam dopisuję…. planuję w ogóle podział na kilka kategorii, bozaczyna się robić mały śmietnik :)

  22. calkiem ciekawe sa te skrypty ale ja mam taki problem …potrzebny mi skrypt ktory by odswiezal strone internetowa co okreslony odstep czasu (autorefresh)…takie funkcje ma wiekszosc przegladarek albo na przyklad wtyczka do ff reload every ale one odsweirzaja cala stronek a ja chce odswierzac tylko FRAME a wiec ramke wewnatrz stronki…mozna to robic w opcjach menu kontekstowego ale jednorazowo tzn za kazdym razem trzeba klikac a jest ptrzebny automat odswierzajacy frame co okreslony czas…moze kiedys jakis skrypt tego typu znalazlby sie w serwisie tutaj?

  23. Witam.
    Od jakiegos czasu probuje napisac kilka bardzo przydatnych skryptow batchowych, jednak nie do konca wszystko dziala tak jak powinno. Opisze w czym rzecz (systemy Windows XP prof) :
    1] skrypt 1 – udostepnia zasob na dana chwile (net share itd …)
    2] skrypt 2 – podlacza sie zdalnie do komputera bedacego “serwerem” (net use itd…)
    3] skrypt 3 – wyswietla komunikat informujacy o fakcie tworzenia kopii
    4] skrypt 4 – kopiuje zasob z “serwera”
    Problem polega na tym, iz wszystkie skrypty odpalane z palca dzialaja rewelacyjnie, problem pojawia sie podczas ustawiania za pomoca polecenia AT wykonywania w okreslonej chwili powyzszych skryptow (skrypty 1, 2, oraz 4) nie wykonauja sie). Oczywsice prawa do wykonywania skryptow sa ustalone dla administratora. Z gory dzieki za pomoc. pozdrawiam K.G.

  24. A czy przy komendzie AT podajesz login i hasło użytkownika (administratora)?

  25. Jak sprawdzić czy w katalogu są jakiekolwiek pliki?
    W win 9x działało
    “if exist c:\tu\*.* echo sa pliki”
    na serwerze 2003 system twierdzi ze jest plik momo ze nic nie ma
    (sprawdziłem – nie ma nic ukrytego czy systemowego)
    co z tym zrobić?

  26. nie mam w tej chwili dostępu do W2K3 ale na XP poniższy kawałek działa:

    @echo off
    ::ustalenie w jakim katalogu szukamy
    set katalog="C:\Temp"
    dir %katalog% /b | find /v "*.*" > nul && (set pusty=sa pliki) || (set pusty=brak plikow)
    ::komunikat na koniec
    echo %pusty%

  27. wszystko rozumiem poza fragmentem find/v “*.*” – przecież w pustym katalogu dir/b nic nie zwraca? Jak pan na to wpadł?

  28. find /v wyświetla wiersze nie zawierające podanego ciągu *.* – czyli nic.

    BTW… nie jestem panem :-) Za młody na niego jestem ;-))))

  29. Okej…bo składnia powyższa może wydawać się zbyt trudna to można spróbować czegoś takiego:
    @echo off
    if exist c:\temp\ echo Katalog istnieje
    if not exist c:\temp\ echo Katalog nie istnieje
    pause

    Testowałem na Windows XP SP2 i działa, wrzuciłem to na Windows 2000 SP4, również jest OK.

  30. Witam! Jak napisać skrypt umieszczający w pliku
    tekstowym nazwy wyszukiwanych urzytkowników?
    Próbwałem coś takiego:
    “net user > plik.txt” a potem zabawa z findstr (wyszukiwanie ma obsługiwać * i ?) ale pojawił się problem, bo findstr zwraca cały wiersz i nie wiem jak usunąć nieinteresujacych urzytkowników…

  31. Nie za bardzo rozumiem kim są “nieinteresujący użtkownicy”?

  32. powiedzmy, że w mamy takie wyniki po komendzie net user:
    tomek szymon agata
    marek michał ala

    i teraz wyszukuje ludzi: szy.* i dostję całą linijkę:
    tomek szymon agata
    i problem w tym, ze nie wiem jak z tej linijki wyodrębnić tylko osobę “szymon”, bo w końcu tylko ona spełnia moje kryteria wyszukiwania…
    A wyodrębnic chcę dlatego, że potem wynik takiego wyszukiwania wstawiłbym jako parametr do net user i otrzymał to samo co po komendzie “net user szymon” i miał dokładne informacje o tej osobie (a właśnie takie informacje mam uzyskiwać). A może jest jakaś prostsza metoda?

  33. Hmm ciężko jakoś to wykonać ale można posłużć się narzędziem: netpwage (http://www.jsifaq.com/SUBH/tip3900/rh3988.htm) dzięki niemu można wyświetlać użytkowników i informacje o ich hasłach. Format wyświetlania jest na tyle przystępny, że można zrobić skrypt:

    @echo off
    set /p komputer="podaj nazwe komputera: "
    set /p uzytkownik="podaj nazwe uzytkownika: "
    for /f "tokens=1,1" %%c in (
    'netpwage.exe /users /computer:%komputer% ^|find /i "%uzytkownik%"') do (
    set wynik=%%c
    )
    echo Istnieje uzytkownik: %wynik%
    ::mozna zmienna %wynik% wykorzystac dalej, czyli:
    net user %wynik%

    Musisz jednak w skrypcie podawac nazwę komputera (lub wpisać ją na stałe) oraz nazwę użytkownika lub jej fragment. Istnieje jednak pewne ALE, jeśli w komputerze będą istniały dwie podobne nazwy np: USER1 oraz USER2 to skrypt wyświetli tą drugą nazwę. Niestety nie znam się na tyle na skryptach by to rozwiązać…

  34. Ufff… w końcu można usiąść, więc tak:
    Coby zbytnio nie śmiecić w skrypcie zrobiłem tak byś mógł swobodnie korzystać z niego praktyczne na każdym komputerze (dlatego podajesz nazwę i użytkownika, zawsze można to usunąć). Do tego narzędzie netwpage pozwala Ci na odczyt użytkowników nawet na komputerach w sieci. Poprawiłem też problem związany z kilkoma użytkownikami o podobnych nazwach. Teraz skrypt wyświetla wszystkich użytkowników w zalezności od liter jakie wprowadziłeś.

    @echo off
    set /p komputer="podaj nazwe komputera: "
    set /p uzytkownik="podaj nazwe uzytkownika: "
    netpwage.exe /users /computer:%komputer% | find /i "%uzytkownik%">plik.txt
    for /f "tokens=1,1" %%c in (plik.txt) do (
    net user %%c
    )

    Potestuj :)
    Aha… w przypadku braku użytkownika skrypt po prostu kończy działanie bez zwracania czegokoliwek.

  35. Ooo dziala już całkiem fajnie, teraz jeszcze postaram się dostosowac go jak najbardziej do mojego zadania i dam znać jaki był efekt koncowy.
    Dzięki i pozdrawiam!

  36. Jak obiecałem zdaje relacje :)
    Okazało się, ze nie wolno mi stosować “bonusowych programów”, więc netpwage.exe odpada. Ponadto wyszło, że jako 1 parametr mam podawać nazwę usera (wraz z obsługą * i ?) a drugi parametr (opcjonalny) to nazwa grupy (podawana dokładna nazwa czyli bez * i ?). Wynikiem miała/(y) być pełne dane o znalezionych userach. Postanowiłem działać na “net user”, bo “dsquery” z marszu nie działa na XP, wiec sobie odpuściłem (chociaż byłoby łatwiej i nie pojawiałyby się pewne błędy).

    Oto kod (mam nadzieję, ze nie będzie hardcorowo wyglądał, bo nie wiem jak albo nie mogę wstawiać go w takich fajnych ramkach jak ty :)

    @echo off

    if exist temp_file0.mem del temp_file0.mem
    if exist temp_file1.mem del temp_file1.mem
    if exist temp_file2.mem del temp_file2.mem

    if /%1==//? goto help
    if /%1==/ goto help

    if not defined %2 goto grupa

    net user | findstr /i “\” > temp_file0.mem

    for /f “tokens=1″ %%c in (temp_file0.mem) do (echo %%c >> temp_file1.mem)
    for /f “tokens=2″ %%c in (temp_file0.mem) do (echo %%c >> temp_file1.mem)
    for /f “tokens=3″ %%c in (temp_file0.mem) do (echo %%c >> temp_file1.mem)

    if not exist temp_file1.mem goto nie_ma

    findstr /i “\” temp_file1.mem > temp_file2.mem
    for /f “tokens=1″ %%c in (temp_file2.mem) do (net user %%c) |more
    goto end

    :grupa
    net localgroup %2 | findstr /i “\” > temp_file0.mem
    for /f “tokens=1″ %%c in (temp_file0.mem) do (echo %%c >> temp_file1.mem)

    if not exist temp_file1.mem goto nie_ma

    findstr /i “\” temp_file1.mem > temp_file2.mem
    for /f “tokens=1″ %%c in (temp_file2.mem) do (net user %%c) |more
    goto end

    :nie_ma
    echo Nie ma takiego uzytkownika
    goto end

    :help
    echo:
    echo —=== Pomoc skryptu MAIN ===—
    echo:
    echo MAIN [Nazwa uzytkownika] [Nazwa grupy]
    echo:
    echo Nazwa uzytkownika – parametr konieczny, nie trzeba podawac pelnej nazwy
    echo “.” – zastepuje pojedynczy znak
    echo “*” – powiela n-razy poprzedni znak
    echo Nazwa grupy – parametr opcjonalny
    echo:
    echo “/?” – wyswietla pomoc
    echo:

    :end

    if exist temp_file0.mem del temp_file0.mem
    if exist temp_file1.mem del temp_file1.mem
    if exist temp_file2.mem del temp_file2.mem

    I teraz mam pytanie: dlaczego jak nie podaję drugiego parametru to po odpaleniu wyskakuje komunikat: ‘grupa’ is not recognized as… ?
    Da się to jakoś wyeliminować?
    Aha i jeszcze jedno pytanie: czy tylko u mnie tak jest, ze “if not defined” działa odwrotnie niz można sie spodziewać?

  37. :-) Potestuję i sprawdzę. Co do uzywania zewnętrznego softu to i ja mam z tym problem, jednak inektóre narzedzia są na licencji GPL więc można je stosować.

    Co do ramek to możesz zastosować składnię CODE i /CODE oczywiscie znaczniki w nawiasach ostrych :-)

  38. Okej…usunąłem komentarze i wrzuciłem pliczek TXT: http://www.promanski.info/pliki/skrypt.txt

    Jeśli możesz to sprawdź czy wszystko jest ok, bo mnie właśnie rozleniwia czerwona Sophia :-) A ja dokładniej to potestuję w poniedziałek w pracy, gdzie mam lepsze pole testowe ;-)

  39. Mam takie jedno trywialne pytanie. Nie wiem czemu, ale nie mogę sobie z nim poradzić. Jestem w tych sprawach początkujący na razie.
    Jak napisać plik wsadowy .bat realizujący wyszukiwanie w katalogu – np. C:\Windows – 5 plików, które w nazwie zawierają na pierwszej pozycji literę m (małe m).
    Wiem, że np. komendą:
    DIR /A:-D /B C:\WINDOWS\m*.*
    można wyszukać takie pliki (można też użyć instrukcji iteracyjnej FOR), ale jak ograniczyć wynik do 5 pierwszych pozycji (chodzi mi o to aby system wyświetlił tylko 5 pierwszych pozycji, a skrypt zakończył działanie)? Z góry dziękuję za pomoc.

  40. Jestem początkująca i mam pytanie. Czy istnieje możliwość zapisania za pomocą cmd w pliku tekstowym dokładnej lokalizacji grupy plików o różnych rozszerzeniach znajdujących się w konkretnym folderze.

  41. Tak, wystarczy zapisać skrypt cmd w katalogu, w ktorym chcesz wyświetlić dane pliki:

    dir /A:-D /B > lista.txt

    Skutkiem tego będzie pojawienie się pliku tekstowego w danym katalogu. W pliku znajdzie się lista wszystkich plików. Jeśli chcesz mieć listę określonych plików to wystarczy dodać do poniższego skryptu określone rozszerzenia, np.
    dir /A:-D /B *.doc > lista.txt
    Zapisze do pliku wszystkie pliki z rozszerzeniem DOC.

    Jesli to nie będzie wystarczające to można rozbudować skrypt w taki sposób aby pytał się o ścieżkę w jakiej ma szukać danych plików, o rozszerzenie i gdzie ma zapisać wynik.

  42. Dzięki bardzo za podpowiedź.

  43. Przeprasam, że piszę jeszcze raz ale naprawdę nie mogę sobie dać z tym rady – a muszę to mieć na sobotę rano – mam nadzieję, że ktoś mi tu pomoże.
    Jak napisać plik wsadowy realizujący wyszukiwanie w katalogu – np. C:\Windows – 5 plików, które w nazwie zawierają na pierwszej pozycji literę np. m (małe m).
    takim czymś:
    DIR /A:-D /B C:\m*.* | FIND “m”
    osiągnąłem tyle, że wyświetla mi wszystkie pliki na literę m – niestety wyświetla też pliki, które na pierwszej pozycji mają M, ale rozszerzenie ich zaczyna się na m, np. Mozart.mid
    Drugim problemem jest to, że skrypt ma wyszukać tylko 5 plików na m i je wyświetlić, a następnie zakończyć działanie. Zapętlanie przy komendzie dir jest niestety bez sensu, gdyż i tak za każdym razem wyświetli wszystkie pliki, a nie 5 pierwszych znalezionych – co najwyżej 5 razy wyświetli wynik poszukiwań.
    Czy w ogóle możliwe jest napisanie takiego skryptu – ważne jest też to aby działał on w Windows 98?
    Bardzo proszę o jakąś informację.

  44. Daj mi czas do jutra, postaram się coś pokombinować…dziś niestety już nie dam rady. Zerknij tu jutro wieczorem pewnie coś się powinno pojawić….

  45. Dawno nie widziałem Windows 98 ale powinno i na nim działać. Skrypt masz tutaj:
    http://www.promanski.info/pliki/licznik.cmd

    Daj znać czy działa :-)

  46. Serdeczne dzięki za skrypt :) Na razie też nie mam dostępu do Windows 98 (mam XP SP2 i Linuxa), ale w nocy przetestuję u znajomego i dam znać jak działa.

  47. Witam, mam pytanie w jakim języku programowania są pisane te skrypty, bo chciałbym się nauczyć. Pozdrawiam

  48. To nie jest żaden język programowania, to po prostu zestaw wielu komend wiersza poleceń ułożony w odpowiedniej kolejności. Na początek może polecę: http://www.batch.site.pl/ oraz tamtejsze forum. Będzie to dobry wstęp do nauki :-)

  49. Nie było mnie niestety parę dni, więc piszę dzisiaj. Ostatecznie skrypt został przyjęty bez sprawdzania na Windows 98. Na XP wszystko gra. Jeszcze raz dzięki za skrypt :)

  50. :-) to super, cieszę się, że mogłem pomóc :-)

  51. Jak przekopiować całe drzewo katalogów wraz z plikami w nich zapisanymi? Jak używam xcopy z parametrami /t/e/f to kopiuje mi tylko drzewo folderów, a plików nawet nie rusza…

    załużmy że drzewo wygląda tak:
    ex
    |-folder1
    | |-plik1.txt
    | |-plik2.txt
    |-folder2
    | |-Plikx.txt

    i chce to wrzucić w folder Document and Settings/[nazwa usera]/Dane Aplikacji/ex

    czyli jednym słowem do: “%USERPROFILE%\Dane aplikacji\ex\”

    Ale niestety nie kopiuje mi plików… Jako źródło mam ustawiony owy folder ex…

    Ktoś mógłby mi pomóc?

  52. Wyrzuć przełacznik /t. samo polecenie xcopy stworzy strukturę katalogów. Natomiast /t kopiuje strukturę ale nie kopiuje plików.

  53. Prosze o pomoc w jaki sposób napisac skrypt pod winXP żeby po wykonaniu jakiejś czynnośc wysyłał maila z powiadomieniem do osoby z listy

  54. To zalezy od czynności – zazwyczaj w większości poleceń można zrzucić wynik działania do pliku, posłuzyć się ERRORCODE lub wykorzystać przełączniki.

    Potem już tylko program xmail i wysłanie wyniku do odbiorcy.

    Może podaj przykład czynności jaką chcesz wykonać. Dla przykładu najprostsze polecenie ping:


    ping http://www.google.pl > wynik.txt
    xmail - tu konfiguracja SMTP, hasło login wynik.txt

  55. Dotyczy xmail – wszystko działa ale na kompuerze podłaczonym do internetu natomiast w sieci lokalnej bez dostepu do netu pokauje bład: Failed to conect SMTP server smtp.poczta.lan:SMTP_PORT. Nadminiam że według mnie wszystkie ustawiania sa wykonane poprawnie. Prosze o pomoc. Pozdrawiam rak

  56. Zaraz zaraz… to w jaki sposób chcesz wysłać mail? Skoro komputer nie ma dostępu do Internetu? No dobrze, istnieje ewentualność by bez dostępu wysłał mail, ale do tego potrzebny jest np. serwer Exchange.

    Jeśli chodzi o sieć lokalną to można zrobić tak by plik z wynikiem działania był przesyłany na inny komputer (do udostępnionego zasobu lub przez udostępnienie administratorskie C$) a następnie mail był wysyłany z tego komputera, który ma dostęp do Internetu.

    Nie ma raczej innej możliwości, xmail potrzebuje serwera SMTP by przekazać mail do adresata.

  57. Mam server poczty załozony w sieci lokalnej bez dostepu do internetu. Programy pocztowe takie jak outlook czy The bat działaja bez problemu. Chodzi o to że albo zle cos robie w skrypcie albo xmail nie może działać bez internetu. Prosze o pomoc w skrypcie dla konfiguracji smtp.poczta.lan odbiorca aaa@poczta.lan nadawca bbb@poczta.lan. Z góry dziekuje za pomoc. Pozdrawiam

  58. W takim razie XMAIL powinien mieć konfigurację:
    xmail smtp.poczta.lan bbb@poczta.lan aaa@poczta.lan wynik.txt LOGIN_UZYTKOWNIKA_bbb HASLO_UZYTKOWNIKA_bbb
    Jeśli wiadomości w sieci lan są przekazywane przez SMTP to XMAIL sobie poradzi z wysłaniem tej wiadomości.

  59. mam ustawione dokładnie tak samo niestety xmail sobie z tm nie radzi:-( Failed to conect SMTP server smtp.poczta.lan:SMTP_PORT. A najśmiesznie jest to że jako wynik pinguje mi bez problemu komputer poczta.lan. Nie wiem jak sobie z tym poradzic może mam zablokowana jakąś usługe w XP ale outlook dziła bez problemu w wewnętrznej sieci

  60. Jeśli dobrze rozumiem wysyłanie wiadomości idzie u Ciebie po standardowym 25 porcie i nie jest szyfrowane? Jeśli tak to składnia będzie taka:
    xmail smtp.poczta.lan bbb@poczta.lan:25 aaa@poczta.lan wynik.txt LOGIN_UZYTKOWNIKA_bbb HASLO_UZYTKOWNIKA_bbb
    Żadna usługa z XP nie ma wpływu na XMAIL-a. Program po prostu ma za zadanie dogadac się z serwerem poczty i przesłać mail.

    Jeśli to nie zadziała to spróbuj może MAPISEND z ResourceKita (http://www.dynawell.com/support/ResKit/ex2k.asp) – jest na dole tej strony. Służy on przede wszystkim do wysyłania poczty z Exchange ale działa również po SMTP.

  61. wiadomośc nie jest szyfrowana i jest na standardowym 25 porcie mimo zastosowania zmian dalej to samo:-( szkoda . sciągnołem mapisend ale mam problem z jego ustawieniami w skrypcie czy moge prosic o pomoc dla ustawień jak wyżej?

  62. Hmm, wpadłem na coś innego. Mapisend może mieć również problem. Skoro działa Ci Outlook to może spróbuj tego: Wysyłanie wiadomości z wiersza poleceń – Outlook Express

  63. dreczyło mnie to ale rozwiązałem problem z xmail prawidłowa składnia skrytpu to:
    ping poczta.lan > wynik.txt
    xmail poczta.lan aaa@poczta.lan bbb@poczta.lan wynik.txt
    a teraz prosze o pomoc w jaki sposób uzyskac listę komputerów znajdujących sie aktualnie w sieci aby na podstawie wykonanego wyniku wysłac np wiadomośc za pomoca net send

  64. Jeśli chodzi o ping całej podsieci to można to zrobic kawałkiem kodu, np:
    for /L %%a in ( 1,1,254) do ping -n 1 123.456.789.%%a
    Będzie pingowana cała sieć klasy: 123.456.789.x, gdzie X to liczba od 1-254. -n 1 to liczba czasów odpowiedzi. Standardowo jest 3. W tym przypadku wystarczy chyba 1. Co do net send-a to ciężko mi powiedzieć bo pierwsze co robię to go wyłączam. Ja polecam zrzucenie pingów do pliku. Ale jeśli się uprzesz to i z tym się coś poradzi ;-))))

    Szybciej można znaleźć wszystkie aktywne komputery w sieci stosując program wpsweep. Składnia jest banalnie prosta: wpsweep IP_poczatkowy IP_koncowy >zrzut_do_pliku.txt

  65. stosuje program wpsweep ale lista stworzona przez niego nie nadaje sie do czytania przez np przez net send ze wzgledu na nagłowek programu zawarty w pliku wynikowym.

  66. Postaram się na jutro po południu coś z tym zrobić…

  67. Cięzko będzie wysłać całą listę aktywnych komputerów w sieci poprzez net send. Zrzucenie listy komputerów do pliku będzie wyglądało jak lista (każda nazwa w jednym wierszu), dorzucenie do tego komendy net send spowoduje, że informacja o każdym aktywnym komputerze w sieci będzie jako oddzielny komunikat.. Ja bym proponował jednak wrzucenie tego do pliku a potem kopia pliku gdzieś na dysk sieciowy, mail, itp.

    Natomiast poniżej jeszcze jeden sposób napingowanie określonej podsieci:
    @echo off
    set ip=1
    :repeat
    if %ip%==255 goto koniec
    ping -n 1 192.168.1.%ip%
    set /a ip=%ip%+1
    goto repeat
    :koniec
    exit

  68. Okej… poszukałem i znalazłem: http://www.jsifaq.com/SUBC/tip1000/rh1024.htm
    Tym możesz wysłać zawartość pliku TXT za pomocą net send.

    Co do pliku TXT to polecam jednak zrzucenie aktywnych komputerów za pomocą wpsweep.exe Jest tu jednak jakieś ograniczenie (pewnie komendy Net send), bo mi udało się przesłać tylko 54 wiersze.

    mam nadzieję, że to pomoże i to jest to o co Ci chodziło ;-)

  69. Witam!
    Nie mogę po formacie ustawić strony startowej. Kiedy ustawię stronke którą chcę daje zastosuj/ok, i włączam jeszcze raz właściwości strona pozostaje nie zmieniona. Próbowałem też zmienić w rejestrze w folderze main wartość start page, ale po ponownym otwarciu rejestru strona pozostaje nie zmieniona czyli ta nieporządana. Mam przegladarkę IE i system XP. Proszę o jakąś podpowiedź, albo o jakąś radę.
    Pozdro

  70. BTW. jakby kogos interesowaly jakis konkretne narzedzia do parasowania teksu i twozenia zacnych skrypów to polecam pakiet GnuWin32 na http://gnuwin32.sourceforge.net/ – gawk,grep i masa naprawde konkretnych programow wyciagnietych (przekompilowanych) doslownie z linuxa…

    btw. bardzo czesto przydaje cie cdmow i mtee ;>

    pozdrawiam, bardzo dobra stronka i oby tych skryptów więcej…

  71. oblus – fakt pakiet jest świetny, ja do tej pory siedzę i przeglądam co z czym zjeść. A skoro już ruszyłeś temat to pewnie moje działania się zintesnyfikują i może niedługo pojawi się kilka przykładów skryptów z wykorzystaniem gnuwin

  72. Witam
    Czy jest taka mozliwosc napisania dwoch skryptow, ktory jeden bedzie mial za zadanie wysylac ping-a z innego komputera zaraz po polaczeniu sie z internetem, a drogi bedzie dostawal informacje, ze ten pierwszy skrypt zostal polaczony do sieci?
    pzdr

  73. Lukasz nie za bardzo rozumiem, chodzi Ci o coś takiego:

    @echo off
    for /f "tokens=1,1" %%c in (
    'ping http://www.google.pl -n 1 ^|find /i "Odpowie"') do (
    echo polaczony
    )

  74. Witam
    Moze bardziej to pytanie sprecyzuje
    Zaluzmy ze mam dwa komputery
    Na komputerze1 jest skrypt ktory przy starcie komputera uruchamia sie automatycznie i wysyla pakiety na moj adres IP gdy tylko uzytkownik polaczy sie z internetem,a moj komputer2 odbiera te pakiety i tym samym wiem ze komputer1 jest polaczony z interntem.
    Bardzo prosze o jaka kolwiek odpowiedz czy jest taka mozliwosc zrobienia w skrypcie
    Dzieki i pzdr

  75. A masz dostęp administratora do tego komputera? Jeśli tak to wystarczy zdalny wiersz poleceń, np. za pomocą porgramu netexec i sam po połączeniu możesz sobie pingnąć jakiś zewętrzny adres.

    Możliwość jest tylko musiałbym wiedzieć czy netexec by Ci pasował. Jesli tak to całość będzie banalnie prosta.

  76. ok rozumiem
    wlasnie nie mam dostepu do administratora
    Adres IP na komputerze1 nie jest staly np: neostrada
    Skrypt ktory byl by umieszczony na komputerze1 zna tylko moj adres IP , na ktory wyslyla pakiety.
    Zalozmy cos takiego:
    Wysylam do komputera1 skrypta o takich wlasciwosciach jw. Skrypt przy kazdym polaczeniu sie z internetem przez uzytkownika wysyla na moj adres IP pakiety, i tym samym wiem ze komputer1 jest juz polaczony z internetem. Jesli jest inna mozliwosc niz inna, sprawdzenia iz dany komputer1 jest w sieci to prosze o wskazowki
    Dzieki i pzdr

  77. Nie wiem jak wygląda sprawa z połączeniem do Internetu na tym komputerze. Jeśli jest to połączenie już przy starcie systemu (przed zalogowaniem usera) to wystarczy ten powyższy skrypt nieco zmodyfikować:

    @echo off
    for /f "tokens=1,1" %%c in (
    'ping http://www.google.pl -n 1 ^|find /i "Odpowie"') do (
    net send NAZWA_TWOJEGO_KOMPUTERA polaczony
    )

    To wrzucić np. ludziom do skryptów logowania lub autostartu.

  78. w jaki sposob w cmd mozna sprawdzic ze sa wysylane do mnie pakiety z pwyzszego skryptu?

    @echo off
    for /f “tokens=1,1″ %%c in (
    ‘ping 195.1.1.1 -t ^|find /i “Odpowie”‘) do (
    net send NAZWA_TWOJEGO_KOMPUTERA polaczony
    )

    czy taka modyfikacja wystarczy na to zeby skrypt wysylal caly czas pakiety na moj IP?
    dzieki i pzdr

  79. Nie… skrypt wyśle Ci tylko informację, że 195.1.1.1 jest połączony z internetem.

    Tylko zamiast wyrażenia: NAZWA_TWOJEGO_KOMPUTRA umieść nazwę netbios Twojego komputera lub jego adres IP (jeśli masz go przypisanego na sztywno) i jeszcze jedno:
    Jeśli Twój system to Windows XP to włącz sobie usługę Posłaniec – Panel Sterowania – Narzędzia administracyjne – usługi.

  80. Mam rozumiec,ze po tej modyfikacji bede dostawal informacje ze 195.1.1.1 jest polaczony z internetem, a co zrobic dgy IP nie jest slaty i sie zmienia za kazdym logowaniem do sieci, czy jest mozliwosc dopisania do skryptu zeby pobieral IP uzytkownikia i wysylal info na moj staly IP ze jest w sieci ??

  81. Tak dostaniesz komunikat, że 195.1.1.1 jest włączony. Gdy na swoim komputerze nie masz stałego adresu IP, tylko przydzielne z DHCP to po prostu wpisz zamiast wyrażenie NAZWA_TWOJEGO_KOMPUTERA swoją nazwę komputera.

    Co do pytania o pobieranie adresu IP, to jaki adres IP chcesz pobierać? Którego komputera?

  82. wlasnie
    trochu sie nie rozumiemy. To ja mam staly adres IP a chce zeby skrypt pobral niestaly adres IP komputera1 i wyslal mi go na moj komputer2. Jesli jest to z deka skomplikowane, to wystarczy mi to ze po polaczeniu sie z netem na komputerze1 skrypt ten wysyla mi odrazu pakiety na moj staly adres IP ??

  83. zalozmy ze uzytkownik ma komputer1 i jest na poludniu polski, ja natomiast mam komputer2 i jestem na polnocy polski. Wysylam mu mailem skrypta, on uruchamia go, a skrypt jak wykryje ze komputer1 tego uzytkownika jest polaczony z netem to wysyla nonstop pakiety na moj staly adres IP np 195.1.1.1
    Moje pytanie, czy jest taka mozliwosc stworzenia skrypta o takich wlasiwosciach ??
    Jesli tak to prosze o jakies wskazowki

  84. Jeśli to nie jest sieć LAN-WAN-LAN spięta jakimś VPNem to można zapomnieć o skryptach. No chyba, że obydwa mają neostradę.

    Ja bym proponował to zrobić nie tak… ta sama składnia skryptu tylko zamiast “net send” zastosować np. xmaila, który Ci wyśle to co chcesz zrobić. Jeśli jest to jakiś “pofuny” projekt to podeslij mi info na mail: fascik@promanski.info Dostostujemy go dokładnie do Twoich potrzeb.

  85. Choć jest pewna opcja, która pozwoliłaby na publikowanie adresu IP i jego wyświetlanie. Jeśli możesz to podeślij mi konkretną sytuację jak chcesz o wykorzystać (na mail) to wtedy będę mógł pomóc.

  86. Witam,
    Potrzebuję w pliku wsadowym uruchomić program i przechwycic wynik jego działania (output) do zmiennej środowiskowej, aby następnie użyć jej w innym poleceniu w tym samym pliku .bat
    Jak zrobić coś takiego?

    Próbowałem z FOR, ale w tym poleceniu wynik działania uruchamianego programu jest dzielony na wiersze i “obrabiany” wiersz-po-wierszu co niezupelnie mi odpowiada (do zmiennej wpisywane są kolejne linie, na końcu zostaje tylko ostatnia). Zależy mi na całym (wielolinijkowym) wyjściu.

  87. no fajnie by bylo gdyby taka opcja mogla zaistniec,ale nawet nie musze wyciagac zadnych informacji, zeby nie bylo ze skrypt jest na zasadzie szpiegowania ;). Chodzi mi tylko o to by skrypt dawal mi informacje o tym ze dany komputer jest polaczony z netem i nic wiecej.
    Oczywicie info na maila odpada, bo jak sie dowiem ze uzytkownik rozlaczyl sie ??

  88. Od chwili obecnej wszelkie komentarze, prośby i problemy ze skryptami proszę zgłaszać na forum – http://www.promanski.info/forum
    Więcej informacji na temat logowania znajdziesz na początku tej strony oraz w tym newsie

    Możliwość komentowania została ponownie włączona. Jak na razie okazuje się, że funkcjonujące forum miało poważne błędy i zaprzestałem jego uzytkownia. Za utrudnienia przepraszam i poinformuję jeśli znajdę odpowiedni skrypt tworzący forum :)

  89. Proszę o pomoc

    Jak napisać skrypt najlepiej w VBS bym mógł podpiąć do excela.
    Chodzi mi konkretnie o skrypt który będzie zmieniał wpis w plikach *.bat o różnych nazwach ale znajdujących się w jednym katalogu. Konkretnie to chciałbym coś takiego:
    - mam pliki np. a.bat; b.bat; c.bat itd…
    mam w tych plikach np:

    IF EXIST h:\NUL NET USE h: /D >NUL
    NET USE h: \\%SERVER01%\xxx$

    IF EXIST h:\NUL NET USE h: /D >NUL
    NET USE h: \\%SERVER01%\yyy$

    …itp
    chcę w tych wszystkich plikach z automatu zmienić wpis (oczywiście definiując wcześniej co ma zmieniać)np z:
    NET USE h: \\%SERVER01%\xxx$
    na:
    NET USE h: \\%SERVER02%\xxx$

    Super by było gdyby wartości do zmiany były wpisane w excelu, a sam skrypt pobierał te wartości i na ich podstawie zmieniał.

    Z góry bardzo dziękuję za pomoc.

  90. mam pytanie:
    1. jak zrobic zeby skrypt czekal na wprowadzenie odpowiedniej komendy np
    type, call albo innej potrzbne mi to do zrobienia menu (inne propozycje rowniez mile widziane) przyslo mi do glowy teraz ze mozna te komendy wypunktowac (tylko jak zrobic wypunktowanie na kilkanascie komend )?
    2. czy skrypty bat moga uruchamiac strony HTML lub linki ?

  91. Co do pierwszego to sprawa jest raczej prosta i wyjścia są dwa.
    1. Kawałek skryptu:

    @echo off
    echo menu
    echo 1. pozycja 1
    echo 2. pozycja 2
    echo 3. pozycja 3
    echo:
    echo:
    choice /c:1234 /n
    set wybor=%errorlevel%
    if %wybor% equ 1 goto jeden
    if %wybor% equ 2 goto dwa
    if %wybor% equ 3 goto trzy
    :jeden
    echo wybrales 1.
    goto :eof
    :dwa
    echo wybrales 2.
    goto :eof
    :trzy
    echo wybrales 3.
    goto :eof

    lub

    @echo off
    echo Menu
    echo Pozycja 1. - wybierz 1
    echo Pozycja 2. - wybierz 2
    echo Pozycja 3. - wybierz 3
    set /p wyb="Wybor: "
    if %wyb% EQU 3 goto trzy
    if %wyb% EQU 2 goto dwa
    if %wyb% EQU 1 goto jeden
    :trzy
    echo wybrales 3
    goto :eof
    :dwa
    echo wybrales 2
    goto :eof
    :jeden
    echo wybrales 1
    goto :eof

    Pierwszy sposób wymaga pliku choice.exe, drugi nie.

    2. Skrypty mogą uruchamiać strony i linki:
    Otwarcie strony:

    start iexplore http://www.google.com

    Jeśli wolisz w innej przeglądarce:
    "c:\program files\internet explorer\iexplore" http://www.google.com

    Otwarcie lokalnego HTML-a:
    start C:\1.html
    Strona powinna otworzyć się w domyślej przeglądarce lub programie, który otwiera dokumenty HTML
    Otwarcie LNK (skrótów)
    start skrot.lnk
    Oczywiście skrót musi być w tym samym katalogu co batch, ewentualnie nalezy podać pełną scieżkę do skrótu.

  92. bardzo dziekuje za pomoc ale czy mogł(a) bys napisac cos wiecej o CHOICE.exe tzn jak stworzy i jak to dziala (mile widziane tutoriale :P) z gory dziekuje

  93. Dominicus tutaj znajdziesz porządne wyjaśnienie choice. Nie wiem czy jest sens pisać tutoriale bo jest tego mnóstwo w sieci. Wystarczy w google wpisać “choice.exe”

    pssst… mógłbym ;-)

  94. mam pytanie co zrobic by skrypt
    call “C:\Program Files\Winamp\winamp.m3u”

    nie czekal az zamkne program (tylko zeby dalej wykonywal swoje zadania)

  95. Np. tak:
    start "" "C:\Program Files\Winamp\winamp.m3u"
    echo Nastepne polecenie
    echo nastpene polecenie

  96. Jak napisać skrypt aby zapytał się o 10 argumentów a następnie je wyświetlił?

  97. Tomek, czy chodzi Ci o coś takiego:

    @echo off
    set /p arg1="Podaj pierwszy: "
    set /p arg2="Podaj drugi: "
    set /p arg3="Podaj trzeci: "
    echo %arg1% %arg2% %arg3%
    echo.
    echo %arg1%
    echo %arg2%
    echo %arg3%

  98. Zasada działania jest taka o jaką mi chodzi.
    Tylko myślałem, że można wykorzystać do tego pętle. Tu właśnie mam problem.

  99. Jedyne co mi przychodzi do głowy w sobotnie popołudnie to coś takiego:

    @echo off
    set poczatek=0
    set koniec=4
    :petla
    set /p arg="Argument: "
    set /a poczatek+=1
    echo %arg% >>argumenty.txt
    if %poczatek% lss %koniec% goto petla
    cls
    echo Twoje argumenty:
    for /f "tokens=*" %%a in (
    argumenty.txt
    ) do echo %%a
    del argumenty.txt

    Pętla jest wykorzystana, możnaby było jakoś zmodyfikować przechowywanie argumentów ale nie mam dziś pomysłu na ogarnięcie tego… ;-)

  100. Dziękuję bardzo jest to znacznie bliższe temu co próbuję osiągnąć. Myślę, że jest to dobry kierunek. Teraz spróbuję dalej sam pokombinować jak wyeliminować przechowywanie argumentow w pliku.
    Jeszcze raz bardzo dziękuję :-))

  101. argumenty są przechowywane tylko przez chwilę by wyświetlić je na ekranie potem pliczek znika :)

  102. Wiem i mi to wystarczy tylko to jest takie moje zadanie domowe i nie jestem pewien czy może tak być. Szkoda, że nie można powołać do życia tablic ;-) Chyba, że się mylę???
    Jutro się dowiem czy o to chodzilo.
    W przeciwnym razie czy będę musiał zadeklarować 10 zmiennych do przechowania tych arg?

  103. Nie mam pojęcia, nie jestem teoretykiem od skryptów (raczej samouk na potrzeby pracy) i nie zawsze udaje mi się zrobić to na “tip-top” :(

  104. Mój skrypt wygląda następująco:
    @echo off
    dir.bat
    min.exe
    plik.bat
    del plik.txt
    del plik.bat

    Chciałbym żeby uruchamiały się wszystkie pliki/polecenia. Niestety odpala się tylko ‘dir.bat’ i po tym skrypt kończy działanie. Będe wdzięczny za jakąś wskazówkę.

  105. dir.bat oraz plik.bat wystartuj jako:
    call dir.bat
    a min.exe
    start "" min.exe
    Powinno być okej

  106. Wielkie dzięki. Wszystko działa. Jeśli chodzi o exeka, wystarczy samo ‘min.exe’, który działa polecenia ‘start “”‘.

  107. Jak zrobić, żeby zmienna i pobierała dane zapisane w pliku tekstowym.

    Chodzi mi o coś takiego (poniżej), ale to nie działa:/
    for %%i in (“type plik.txt”) do echo %%i

  108. Witam mam pytanie:
    co zrobic by skryp zapisywal dane w pliku txt
    i czy da sie sterowac procesami w komputerze za pomoca skryptow bat (tzn np zamykanie komputera na czas)?

  109. Dominicuss, by skrypt zapisywał coś do pliku wystarczy dowolna komenda skryptu i znaki >> lub >
    np.
    ping ADRES >log.txt
    lub
    ping ADRES >>log.txt
    Pierwszy kod nadpisuje zawartość pliku log.txt drugi przykład dopisuje wynik skryptu do pliku log.txt/
    Co do sterowania procesami… co masz na myśli? Procesy (uruchomione programy) czy usługi? Da się zamykać komputer…

  110. Yyyy? Napisalem znaczniej wiecej, ale tylko link sie ostal…? Cóś siem parsowanie komentow spsulo? ;]
    W kazdem badz razie w/wym. stronka nie zyje, jakby… ;]

    Pozdrawiam,

    janbar.:))

  111. Proszę o pomoc

    Jak napisać skrypt który będzie zmieniał wpis w plikach *.bat o różnych nazwach ale znajdujących się w jednym katalogu. Konkretnie to chciałbym coś takiego:
    - mam pliki np. a.bat; b.bat; c.bat itd…
    mam w tych plikach np:

    IF EXIST h:\NUL NET USE h: /D >NUL
    NET USE h: \\%SERVER01%\xxx$

    IF EXIST h:\NUL NET USE h: /D >NUL
    NET USE h: \\%SERVER01%\yyy$

    …itp
    chcę w tych wszystkich plikach z automatu zmienić wpis (oczywiście definiując wcześniej co ma zmieniać)np z:
    NET USE h: \\%SERVER01%\xxx$
    na:
    NET USE h: \\%SERVER02%\xxx$

    Z góry bardzo dziękuję za pomoc.

  112. Świetna zabawa z tymi BATami. Pomijam fakt, że nie mam pojęcia jak znalazłem się na tej stronie po raz enty;)
    Faścik, czy mógłbyś podrzucić powyżej jakieś nowe skrypty? Aktualne już przerobiłem a jestem przekonany, że wygenerowałeś już kolejną porcję w ramach “nauki przez zabawę”. Za aktualnie pozyskaną wiedzę, serdecznie dzięki.
    pozdrawiam.

  113. :) Heh no niestety brak czasu, wdrożenia systemów i komputerów sprawiają, że jakoś ostatnio zaniedbałem nie tylko ten dział ale również całą stronę. Obiecuję, że jak tylko uporam się z pracą zawodową w stopniu pozwalającym na aktualizację strony to dział Skrypty znajdzie się na pierwszym miejscu.

    A w ramach zabawy: http://net-square.com/nstools/index.shtml kilka execów do zrządzania komputerami w sieci :)

  114. hmm kurde nie bardzo mam pojecie jak to zrobic, moj kod wyglada tak

    set /p name=”Wpisz swoje imie:”
    type %name% >> C:\* LOG.txt
    echo Witaj %name%

    ale cos robie nie tak (chce aby skrypt zapisywal wszystkich gosci do pliku log)

  115. A dlaczego stosujesz type? wystarczy coś takiego:
    set /p name="Wpisz swoje imie:"
    echo %name% >> LOG.txt
    echo Witaj %name%

  116. Używam WebServ’a i bazując na rozwiązaniach, które omówił Faścik urodziłem parę linijek, które kolejno tworzą na serwerze :

    1.katalog (konto) użytkownika o wybranej nazwie,
    2.w katalogu, podkatalogi (files, images, doc i ftp),
    3.stronę index.htm z krótkim wpisem,
    4.plik: data-zalozenia-konta.txt
    5.w podkatalogu doc/ przykladowy plik info.txt,

    • Dodane przez: fascik – plik z kodem źródłowym znajduje się tutaj

    Na koniec ding.wav z katalogu Media w Windows i otwarcie strony pod adresem localhost/~nazwa-konta
    (u mnie localhost to akurat 192.168.1.201 i tak kierowałem funkcje ale z localhost też będzie chodziło)
    ……………………………………..
    Katalog tworzy sie w folderze o nazwie httpd-users. U mnie miesci sie on na dysku Y:\ wiec analogicznie skrypcik zaklada konta pod adresem Y:\httpd-users
    ……………………………………..
    Ameryki nie odkrywam ale zabawa “zadziała czy nie” wciąga ;)
    Dla orłów jak ja;)… Skopiować wszystko poniżej trzech gwiazdek i eksperymentować do woli.

    ***

    :start
    @echo off & setlocal enableextensions

    : ———————————— Tworzenie konta nowego Uzytkownika z okreslona nazwa ————————————————————————————-

    :1
    set /P katalog=”Podaj DUZYMI LITERAMI NAZWE katalogu do utworzenia: ”
    if exist Y:\httpd-users\%katalog% echo Konto o nazwie %katalog% juz istnieje! & goto :1
    Y:\httpd-users\%katalog%

    : ———————————— Tworzenie standardowych podkatalogow ——————————————————————————————————-

    MD Y:\httpd-users\%katalog%\files
    MD Y:\httpd-users\%katalog%\images
    MD Y:\httpd-users\%katalog%\doc
    MD Y:\httpd-users\%katalog%\ftp

    : ———————————— Tworzenie przykladowej strony startowej: index.htm —————————————————————————————–

    set name=”http://192.168.1.201/~%katalog%Wlasnie zalozyles swoje konto WWW o nazwie: %katalog%Plik index.htm zostal wygenerowany automatycznie i mozesz go dowolnie modyfikowac.Pamietaj, ze nazwy rozpoznawane jako strona to: start i index z dowolnym rozszerzeniem z podanych np. htm,html, php, php3″
    echo %name% >>Y:\httpd-users\%katalog%\index.htm

    : ———————————— Tworzenie przykladowego pliku info.txt w folderze doc —————————————————————————————

    set name=”W tym katalogu trzymaj wszystkie dane dotyczace dostepu do twojego konta www i ftp. Oczywiscie katalog mozesz tez usunac. Nie jest niezbedny. Wolna wola.”
    echo %name% >>Y:\httpd-users\%katalog%\doc\info.txt

    : ———————————— Tworzenie pliku info: data-zalozenia-konta.txt ————————————————————————————————–

    for /f “tokens=2 delims=^/- ” %%i in (‘date /t’) do set DYEAR=%%i
    for /f “tokens=1 delims=^/- ” %%i in (‘date /t’) do set DDAYW=%%i
    for /f “tokens=3 delims=^/- ” %%i in (‘date /t’) do set DMONTH=%%i
    for /f “tokens=4 delims=^/- ” %%i in (‘date /t’) do set DMDAY=%%i
    for /f “tokens=1 delims=^/: ” %%i in (‘time /t’) do set THOUR=%%i
    for /f “tokens=2 delims=^/: ” %%i in (‘time /t’) do set TMIN=%%i

    set name=”%DYEAR%-%DMONTH% / %DMDAY% %DDAYW%r. / %THOUR%:%TMIN%”
    echo %name% >>Y:\httpd-users\%katalog%\data-zalozenia-konta.txt

    : ———————————— Dzwiek zakonczenia pracy ————————————————————————————————————————–

    start /i /min sndrec32.exe -play -close “C:\WINDOWS\Media\ding.wav”

    : ———————————— Gotowe. Otwiera utworzona strone Usera ——–

    start http://192.168.1.201/~%katalog%/index.htm

    exit

  117. UPS…
    Będzie problem z utworzeniem index.htm z zawartością bo właśnie widzę,że wycięło znaczniki html’owe dla treści strony. No nic. Może Faścik kiedyś zrobi jakiś mini dział Download* koncepcji to wykonam upload.

    * w końcu to pliki wielkości max. kilku KB

  118. Artur podeślij skrypt wraz z opisem (fascik(na)promanski.info), ja postaram się w międzyczasie przetestować FoxServ’a. Widzę, że odwaliłeś kawał dobrej roboty :) Przeformatuję go do komentarzy :)

  119. [...] Doszło dwie nowe pozycje w sekcji Skrypty .BAT, .CMD i .VBS. Jedna z nich to Szukarek autorstwa Artura, skrypt szukający plików OpenOffice i Office a druga pozycja to Monitor prędkości połączenia sieciowego – skrypt wyświetla aktualną prędkość pobierania/wysyłania danych do/z sieci. Zapraszam do lektury oraz na mini-forum do działu Skrypty gdzie oprócz najnowszych repozytoriów Szukarka również będzie można znaleźć ciekawe propzycje skryptów. [...]

  120. Witam,

    potrzebuje porade: pare skryptow polaczone w jeden sciagaja pliki z FTP’a, potem ten plik odszyfrowywuje jeden program-z linii komend on “nie umie” ale sobie poradzilem wrzucajac go do katalogu z data/czasem w nazwie. Natomiast jak sprawdzac numeracje pliku w nazwie? Mam np: abc123.txt i tworze z niego jakies archiwum abc123.arj i aby bez sprawdzania w katalogu tworzyl mi plik kolejny abc124.arj? Musi zwiekszac o jeden…

    Z gory serdecznie dziekuje!

  121. jest jakis sposob by uniemozliwic zamkniecie skryptu ? (bo chcialem zrobic skrypt logujacy)

  122. jeśli jakaś czynność w skrypcie się kończy to i skrypt kończy działanie. Co innego ze skryptem logującym nieustannie cokolwiek. Tu raczej ograniczenie czasowe.

  123. Co do pytanie Tomka z 2006.10.27 z godz. 23:33,
    > Jak napisać skrypt aby zapytał się o 10 argumentów a następnie je wyświetlił?

    oto moja propozycja (pod WinXP działa):
    @echo off
    set /p wart="Podaj liczbe argumentow do zapamietania: "
    for /l %%j in (1,1,%wart%) do set /p arg%%j=”"Argument: "
    cls
    echo Twoje argumenty:
    for /l %%i in (1,1,%wart%) do echo | echo %%arg%%i%%

  124. Pozwoliłem sobie poprawić skrypt, ponieważ znaki cudzysłowy były niepoprawnie zinterpretowane. Skrypt faktycznie działa. Szacunek llelewel :-)

    Aha, do wklejania źródła skryptu używajcie znacznika code w nawiasach ostrych i zamknięciem znacznika, jeśli jest gdzieś wolna linia sw skrypcie to ją usuńcie lub wstawcie pusty komentarz ponieważ moduł nie zamknie poprawnie komentarza.

    code

  125. SzYmOn -> może to Ci się przyda.
    Założenia:
    - na dysku jest folder “a” z D:\a\abcXX.rar, gdzie XX to 11, 12, 13 itd.
    - oraz na dysku “d:\” plik D:\a.cmd – który będę archiwizował.
    pod WinXP działa.
    for /f "eol=c tokens=1-4* delims=.'abc' " %%i in ('dir d:\a ^| findstr rar') do set /a nazwa_pliku=%%l
    set /a nazwa_pliku+=1
    call "c:\progra~1\winrar\winrar.exe" a "d:\a\abc%nazwa_pliku%.rar" "d:\a.cmd"

    Nie używam arj’a, więc nie znam komend – pewnie będzie analogicznie ;)

  126. Dominicuss – a nie możesz użyć programiku CMDOW i ukryć uruchomiony skrypt?
    CMDOW /run /hid Twój_Skrypt.cmd
    Wiem, że można go ciągle zamknąć w Menadżerze Zadań… ale zawsze to coś, no nie? :-)

  127. llelewel z menadżera zadań można zamknąć ale jeśli skrypt jest odpalony z innymi uprawnieniami to może być problem :)

    llelewel BTW dzięki za “wyręczenie” mnie w niektórych pytaniach :) Nie mam ostatnio czasu by zająć się “wsadami” :( Dziękuję za pomoc.

  128. Luzik – polecam się na przyszłość ;D

  129. moj problem polega na tym, ,że mam w ścieżce kopiowania polski znak ‘ó’ i przez to skrypt mi się wykrzacza czy można to w jakis sposób obejśc ? byłbym wdzieczny

  130. odpal wiersz poleceń, przejdź do lokalizacji gdzie masz skrypt i wpisz:
    edit nazwa_skryptu.bat
    i tu możesz wyedtytować ścieżkę wstawiając polskie znaki

  131. tak tez próbowałem ,jednak po zamknięcu edita problem pojawia sie ponownie

  132. To może w skrypcie zamiast polskich znaczków zapisz te:
    (pod W2K to działa)
    ą = ╣ Ą = ą
    ć = Š Ć = Ă
    ę = ŕ Ę = ╩
    ł = │ Ł = ú
    ń = ˝ Ń = Đ
    ó = ˇ Ó = Ë
    ś = ť Ś = î
    ź = č Ź = Ć
    ż = ┐ Ż = »

  133. Zdaje się, że to nie tak…
    Pośpieszyłem się nieco i dałem ciała… sorki, ale szukam dalej.

    fascik – jak możesz to usuń ten post i poprzedni

  134. Ok, póki co znalazłem te znaki:
    ąĄ Ę Ł ń óÓ żŻ źŹ
    echo Ą¤ ¨ ť ä ˘ŕ ľ˝ «Ť

  135. llelewel – dobra niech zostanie.
    Lukasz wklej na początku skrypt przed @echo off coś takiego:
    set mode con cp select=1250
    Powinno to zmienić stronę kodową na Windows1250 i wtedy powinno poprawnie zinterpetować polskie znaki diakrytyczne.

  136. mam napisać skrypt wykonujacy kopie zapasową i przyrostową dla zaawansowanych określonych jako parametr skryptu zasobów plikowych w podanej jako parametr lokalizacji w lokalizacji docelowej nalezy zadbać o nadanie odpowiednich uprawnień i atrybutów w celu zabezpieczenia kopi proszę o pomoc

  137. czy ktos może mi w tym pomóc

  138. Danka do tego służy narzędzie ntbackup (masz go w swoim Windows).

    Jeśli chodzi o konkretne komendy w wierszu poleceń to tu znajdziesz wszystko.

  139. wiecie może jak napisać skrypt, który podmieniał by ciąg znaków w dokumencie tekstowym na inny??

  140. Nie wiem czy wyjasnielem to dokladnie, ten skrypt dziala tak, ze uruchamia sie na starcie systemu i czeka na podanie loginu i hasla, jesli te zostana podane zle wylacza komputer, chodzi o to ze skryt ten mozna zamknac (nie wiem czy jest sens ukrywac skoro musze wpisac login i haslo mimo to chcialbym sie cos wiecej o tym dowiedziec bo jestem w tym zielony), wiem ze windows ma swoje onkno logowania, ale ono nie powoduje wylaczenia kompa po nieudanym logowaniu :]

    aha dzieki dla Fascik’a i llelewel’a ;)

  141. Hmm to trzeba by zaprzęgnąć do pracy jakiś keylogger, który sprawdzałby zapisane gdzieś hasło. Coś mi się zdaje, że nie uda się coś takiego.

  142. To może ominąć problem sprawdzania poprawności hasła przez skrypt i zrobić coś takiego:
    Tworzę dwa pliki w jednym:
    shutdown -s -f -t 300 -c "Jeśli nie wpiszesz poprawnie hasła komputer wyłączy się za 5 min."
    w drugim:
    shutdown -a
    i ustawiam na nie prawa dostępu jedynie dla admina. Następnie dodaje dwa zaplanowane zadania (Panel sterowania >> Zaplanowane zadania) i przypisuję dla pierwszego skryptu uruchamianie “Przy uruchamianiu komputera”, a dla drugiego “Przy logowaniu”. Dodatkowo w “Zasadach zabezpieczeń lokalnych” ustawiam ilość niepoprawnych prób logowania na 3, a po nich blokowanie konta – czas ustaw sobie taki jaki chcesz.
    Efekt końcowy będzie następujący:
    Razem z oknem logowania pojawi się komunikat, iż za 5 min. zostanie wyłączony komputer. Wpisanie niepoprawnie hasła 3 razy z rzędu zablokuje konto i komputer po 5 min. się wyłączy. Po wpisaniu poprawnego użytkownika i hasła drugi skrypt wyłączy “samo zamknięcie” się komputera.
    - wada tego rozwiązania jest taka iż użytkownik chyba będzie mógł usunąć zadanie z “Zaplanowanych zadań”…
    - aby to ominąć można by zrobić z pierwszego zadania serwis uruchamiający się automatycznie przy starcie komputera, a drugi zapisać w rejestrze do autoruna… – no ale to tylko przy wnikających w system użytkownikach (patrz studenci) – “pani z biura” raczej na to nie wpadnie…

  143. jest jakis sposob by zarzadzac komputerem nie nalezacym do sieci (tzn np znajomy)bo gdy urzywam netexec to nie moge sie polaczyc wyskakuje cos takiego:
    “Nie mo┐na odnalečŠ ťcie┐ki sieciowej.
    Remote computer connection not established.”

    z innej beczki polaczylem sie z kompem znajomego urzywajac innego programu (uruchomilem jego cmd) czy jest jakas komenda pozwalajaca kopiowac pliki z jego kom na moj moze za pomoca wgetEasy

  144. Dominicuss jeśli chodzi o pierwszą część to przyczn może być kilka:
    - włączone proste udostępnianie plików na komputerze kolegi
    - firewall blokujący cały ruchu do komputera
    - niepoprawny login lub hasło
    - puste hasło (w Windows 2000 można było się zalogować na puste hasło, w XP niestety już nie)
    - kolega ma klienta VPN który może (choć nie musi) ograniczać dostęp do zasobów

    Co do drugiego pytania – możesz skopiować pliku na swój komputer np. mapując sobie zasób udostępniony ze swojego komputera jako dysk sieciowy na komputerze kolegi. Przez wgeteasy (skrypt z programem wget służący raczej do ściągania z internetu) nie da rady. Trzeba użyć copy lub xcopy. No chyba, że kolega ma na komputerze odpalony serwer ftp lub www to wtedy wget-em czy też skryptem wgeteasy to ściągniesz.

  145. Dominicuss – jak chcesz mieć możliwość zarządzania np domowym kompem (nawet w podsieci prywatnej) z pracy albo ze szkoły to zainstaluj sobie na nim freewareową wersję programiku stąd: logmein.com.
    Bo chyba nie chcesz się włamać na kompa kolegi – prawda? ;)

  146. potrzebuje skrypt, ktory jak bede zapisywał plik w excelu wysle go pod wskazany adres emailowy, a w temacie wiadomości napisze nazwe pliku, date i czas. Ma to być forma archiwizacji pliku na skrzynce pocztowej.
    jeśli mi ktoś pomoże bede wdzięczny.

  147. wiecie może jak napisać skrypt, który podmieniał by ciąg znaków w dokumencie tekstowym na inny??

    Dade możesz spróbować użyć programu chgstr.exe.

  148. wiece zeby wlamas sie do kogos na kompa, trzeba otrzymac “zaproszenie” lub znalezc kompa z “otwarta furtka”, ja sie wlamuje do komputerow, ktore mnie zapraszaja, najczesciej sa to komputery znajomych i niczego im nie dewastuje, a raczej pomagam w utrzymaniu porzadku, jednak nie mam pojecia jak pobrac cos z komputera znajomego (oczywiscie za jego zgoda), do przesylu plikow urzywam skypa gg albo poczty co wg mnie jest nieporeczne, stad moje poprzednie pytanie ;]

  149. Pamiętaj jednak, że praktycznie wszystkie opisane tu skrypty wykorzystasz raczej w sieci lokalnej a nie Internecie…

  150. Witam! Mam pytanko…
    Pracuje na MS Sql Serverze 2005 i na Oracle…

    By komp chodzil sprawniej wlaczam i wylaczam uslugi zwiazane z tym programem :P moze ktos mi pokazac jakis przyklad skryptow do windowsa ktory umozliwia wlaczanie lub wylaczanie kilku uslug systemowych na raz?

    Dzieki

  151. Nie mam zainstalowanego MS SQLa ani Oracle’a ale wiem jak to zrobić dla np. telneta net stop tlntsvr zatrzymuje serwis, a net start tlntsvr go uruchamia…

  152. Wszystko ładnie wygląda. Zastanawiam się jak wzbogacic skrypt o mozliwosc pozostawienia np 10 katalogow z kopia a reszta katalogow do usuniecia. Czy ktos moze to w jakis sposob opisac jak to zrobic?

  153. teoretycznie jest to możliwe np. jeśli w nazwach katalogów powtarzają się daty, wtedy na podstawie wprowadzonego kryterium można wywalić wszystkie katalogi starsze niż…

  154. No własnie w kataloga sa daty zastanawiam sie jak to wywalic. Nic mi do glowy nie przychodzi. CHodzi o to zeby od daty bierzacej zostalo 10 kopi wstecz.

  155. Nie za bardzo mam czas potestować ale możesz użyć programu “forfiles” z pakietu Resource Kit, który przy pomocy odpowiednich przełączników wyświetli Ci dokładnie to co chcesz oraz przy pomocy przełącznika -c wykona komendę na wylistowanych plikach/katalogach.

    IMHO nie ma sensu wynajdować koła skoro MS już je wymyślił. Jednak jeśli się bardzo upierasz to można napisać kawałek skryptu :)

  156. Dzieki llelewel :) ale w sumie nim odpisales to google objawilo mi odpiwiedz :>

    Teraz tylko patrze jak upchnac kilkanascie takich komend w jednym skrypcie :>
    Czy tez tam pliku… ale i moze w tym google mi pomoze ;>

    Ale dzieki.. wielkie dzieki za checi!

  157. komendy dajesz po kolei, jeśli jedna się wykona to zacznie się wykonywać druga… itd.

  158. witam
    Chciałbym napisać skrypt którego zadaniem byłoby umożliwienie logowania użytkownikowi w konkretnych godzinach
    np pn-czw od 17 do 21
    pt od 15 do 21
    sobota 10-23
    niedziela 10-21
    w pozostałych godzinach logowanie ma byc niemozliwe. Dodatkowo po upłynieciu czasu logowania (jezeli uzytkownik jest zalogowany) nastepuje automatyczne wylogowanie.

    prubowalem rozwiązac sprawe poleceniem net user i dodatkowo managerem zadan, ktory wykonywal plik bat z poleceniem shutdown -l, ale wydaje mi sie ze skrypt w tym wypadku daje duzo wieksze mozliwosci

    pozdrawiam iz gory dziekuje za pomoc

  159. Witam, trochę to trwało, ale coś wymyśliłem…
    @echo off
    FOR /f "eol=c tokens=1-5* delims= " %%i IN ('echo %date%') DO IF %%i==Pn (goto poniedzialek) ELSE IF %%i==Wt (goto wtorek) ELSE IF
    %%i==—r (goto sroda) ELSE IF %%i==Cz (goto czwartek) ELSE IF %%i==Pt (goto piatek) ELSE IF %%i==So (goto sobota) ELSE IF %%i==N (goto
    niedziela)
    :poniedzialek
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 17 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :wtorek
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 17 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :sroda
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 17 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :czwartek
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 17 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :piatek
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 15 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :sobota
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 10 (goto off) ELSE IF %%i GTR 22 (goto off) ELSE goto end
    :niedziela
    FOR /f "eol=c tokens=1-5* delims=:" %%i IN ('echo %time%') DO IF %%i LSS 10 (goto off) ELSE IF %%i GTR 20 (goto off) ELSE goto end
    :off
    shutdown -s -f -t 0
    :end

    Działa, ale tylko pod W2K – bo tam wywołując datę systemową pod dos’em dostajemy też informację o dniu tygodnia… XP już tego nie daje, a rozpisywanie całego kalendarza i weryfikacja na plikach tekstowych jaki jest dzień… to chyba nie ma sensu…
    Osobiście doradzam zakup jakiegoś serwerka z rodziny MS i tam masz ustawienia kont dla userów, dni i godziny logowania…

    Jeśli chodzi o wymuszenie zamknięcia komputera po 21 czy 23 w soboty to proponuję to shutdown -s -f -t 0 a potem taki pliczek/pliczki ustawić by się odpalał/y jako zaplanowane zadanie/a…

    Życzę zdrówka wszystkim w nowym roku ;-)

  160. llelewel – dobry duchu :) Dziękuję za wsparcie. Przyznam się szczerze, że ostatnio obowiązki zawodowe sprawiają, że nie mam czasu na zajmowanie się stroną :(

  161. Hej, a czy ktoś mógłby pomóc mi w konstrukcji batcha który przeszukiwałby określone drzewo katalogów pod kątem nieistnienia podanego pliku i wpisywał do innego pliku nazwy folderów w których plik1 nie znaleziono…?

  162. dzieki llelewel

    zabieram sie do testowania

    pozdrawiam

  163. Czy dalo by sie zrobic BATa, ktory zamienialby wszystkie ” ” (spacja) na “_” (podkreslenie) w nazwie plikow znajdujacych sie w katalogu, w ktorym by ten BAT byl (nie zmieniejac rozszerzenia plikow – ignorowal by 4 ostatnie znaki)?
    Przykladowo do takiegos katalogu wrzucam plik “Moze to jest proste.txt” i ten BAT zmieni jego nazwe na “Moze_to_jest_proste.txt”.
    Tylko to by bylo kilka plikow, wiec bez petli sie nie obejdzie.
    Dokladnie, to chcialbym, aby tak samo postapil z polskimi znakami [ą->a, ł->l, ń->n, ż i ź->z, ć->c, ó->o, ś->s].
    No, ale jak da sie zrobic z podkresleniem, to i to chyba bedzie mozliwe.

  164. Kurcze, musial by jeszce pominac wlasna nazwe.
    A moze lepiej, zeby robil to na jakims podrzednym katalogu o okreslonej nazwie, np. ZMIAMA?

  165. Witam

    Próbuje napisać skypcik kóry by porównał nazwy plików (plik1_01_01_07, plik2_02_01_07, plik45…) z plikiem w którym znajdują się nazwy tych plików. (czyli de facto porównał dwa pliki tekstowe, plik wzorzec z plikiem zawierającym nazwy plików) a następnie pokazał czy nazwy się zgadzają a jeżeli nie to wskazał które z nich mają inną nazwę, występują lub nie występują w tym pliku wzorcowym. Dodam że nazwy są poprzedzone data i innymi rzeczami np:
    “1. 10.01.2007 wystapienie: plik1_01_01_07
    2. 11.01.2007 wystapienie: plik2_02_01_07
    .
    …..”

    Mam nadzieję że nie zamotałem za bardzo. Próbowałem z poleceniem FC ale coś mi nie wychodziło ?

    Skoro juz pisze tego posta to od razu sie zapytam czy jest możliwe napisanie takiego skryptu który by własnie pobierał nazwy plików a następnie wklejał te nazwy do pliku wzorcowego w poszczególne pola zgodne z dniem tygodnia czy po prostu napisać to chociażby w pascalu. (dodam że tak z przekory się uparłem na batcha)

    Pozdrawiam
    Aro

  166. Jednak poradzilem sobie sam ;-) ponizej odpowiedz.


    DIR /A/B *.ttu > plik.txt
    FINDSTR /VG:plik.txt schedul.txt > wynik.txt
    FINDSTR /I ttu wynik.txt > ./roznice.txt

    Jest tylko male ale tj. gdy w we wzorcu ciag znakow ma rozszerzenie np 5 literowe txtd (chodzi o to ze ktos zrobil literowke) to wtedy juz tego nie wylapuje ?#?#?#???

    Moze ma ktos jakis pomysl

    Aro

  167. Witam! Mam proble. Napisalem batcha, ale chcialbym zeby chodzil na Windows Serwer 2003 jako usługa (zebym mogl monitowac obciazenie). Wrzucam do uslug poleceniem “SC create DEMON binpath= c:\baty\demon.bat” ale nie moge odpalic jej. Jak to zrobic? Mozna wrzucać batch’e do usług?

  168. Spróbuj z pakietu Resource Kit wyciągnąć sobie srvany i się nim pobawić. Służy do uruchamiania programów jako usługa. Niestety nigdy z niego nie korzystałem.

  169. A ja i owszem i działa następująco: instsrv NazwaServisu "C:\Katalog\plik.cmd"osobiście proponuję oba pliki ówcześniej zapisać gdzieś do katalogu systemowego, np: c:\Windows\system32

  170. Witam wszystkich!
    Mam malutki problemik ze zrobieniem skryptu archiwizującego pod win98. Skrypt musi robić kopię pliku i zapisywać w katalogu o nazwie dnia tygodnia. Pod winXP nie mam z tym problemu. Dzięki autorowi strony poradziłem sobie z tym. Natomiast jeśli chodzi o win98 nie mam pojęcia jak to zrobić.
    Jestem początkujący wiec szukam pomocy.
    Pozdrawiam.

  171. maks, czy moglbys umiescic tu lub przeslac (spakowany) na kameame@o2.pl ten skrypcik, ktory dziala Ci pod XP??

  172. maks – hmm musiałbym zerknąć na Windows 98, w tej chwili nie mam dostępu do tego typu systemu. Może w weekend gdzieś uda mi się znaleźć u kogoś taki sprzęt to zerknę jak to tam wygląda :)

  173. Kameame skrypt, który działa pod XP jest pierwszym skryptem autora na tej stronie. Ctrl+c Ctrl+v i kilka modyfikacji. Fascik nie obraź się ;)
    PS. Jedyne sensowne miejsce na temat skryptów :)

  174. maks – spoko, tylko kameame chodzi o działanie tego skyptu pod Win98 a ZTCP to tam inaczej wyglądają ustawienia regionalne i inaczej wyświetlana jest data w wierszu poleceń. Wystarczy zmodyfikować skrypt i dobrać odpowiednie paramterty do pobierania daty :)

    CO do sensownego miejsca to za dużo powiedziane :) – jest ich dużo więcej, ja po prostu daję przykłady skryptów, które wykorzytstuję w domu i pracy zawodowej. :)

  175. Oby więcej takich :D

  176. Proszę o pomoc w napisaniu skryptu logowania.
    1. Środowisko:
    - kontroler domeny – NT 4.0 ?
    - poczta – Exchange 5.5 ?
    - stacje robocze – MS Windows 2000/XP

    2. Skrypt ma zawierać:
    - tworzenie katalogu domowego na określonym serwerze, w odpowiednim folderze np. „\\FileSerwer\homedir”
    - ustawienie uprawnień do tego folderu na podstawie nazwy konta w domenie (loginu, username)
    - mapowanie tego katalogu
    - dodawanie odpowiedniej drukarki na podstawie przynależności do grupy w domenie, np. Kowalski należy do grupy „Dział Finansowy”. W tym dziale są 2 drukarki: Finans1 i Finans2.
    Wszystkie drukarki są zainstalowane na serwerze „PrintSerwer”
    - automatyczna konfiguracja MS Outlook. – „ExchangeSerwer”

    Z Góry Dziękuję Bardzo za Pomoc.

  177. Jeśli chodzi o tworzenie folderu to musiałbyś je raczej sam utworzyć dla każdego z kont, ewentualnie kawałek batcha, który zrobi to za Ciebie, np. mając listę kont można to napisać.

    Co do mapowania katalogu:
    net time \\FileSerwer /set /yes
    net use X: /delete
    net use X: \\FileSerwer\%USERNAME%

    Jesli chodzi o dodanie drukarki to można użyć con2prt
    składnia tego jest następująca:
    con2prt /cd \\PrintSerwer\Printer
    Skrypt podłączy drukarkę i ustawi jako domyślną.

    Jeśli chodzi o dostęp do drukarek to chyba wypadałoby napisać oddzielne scriptlogony dla poszczególnych grup użytkowników. Niestety nie mam dostępu do serwera by móc to sprawdzić w praktyce.

    Co do konfiguracji MS Outlook – hmmm sam zamierzam się do tego zabrać, jednak nigdy nie zagłębiałem się w tematykę. Jeśli będę znał bliższe szczegóły postaram się odpowiedzieć.

  178. Witam

    Czy ktoś mi pomoże napisać skrypt który przeszuka n-lików i wskaże wszystkie te wewnątrz których nie ma określonego wpisu. Wpis ma być taki “/muzyka/pliki/piosenka1.mp3″ itd. czyli są to playlisty winampowe. A teraz trzeba znależć takie playlisty które mają inną scieżkę, są puste lub wewnątrz nich utwory mają inne rozszerzeniem lub po prostu mają jakiś bład. Ważna jest konstrukcja playlisty. Zmieniają się tylko nazwy plików mp3.

    Z góry dziękuję za pomoc

  179. Witam.
    mam pytanko. Jak stworzyc plik *.exe ktory po kliknieciu otworzy mi folder E:\download. Moze to jest proste ale nie mam pojecia jak to stworzyc :) .
    Pozdrawiam

  180. prawdopodobnie plik o rozszerzeniu *.bat tez pojdzie. potrzebuje to koniecznie do kiosku internetowego.

  181. Kicaj:

    @echo off
    echo otwieram E:\Download
    start E:\Download

    Oczwyiście jeśli chcesz to można z tego batcha zrobić execka.

  182. Witam!

    Fascik dotarłeś do windowsa 98??

  183. maks – niestety nie. Może dziś wpadnę do znajomego, który siedzi na takim… dam znać jeśli coś się “urodzi”.

  184. Ok :)

  185. Hej. Potrzebuję wrzucic batcha, ktorego napisalem, aby byl wykonywany po wylaczeniu badz wylogowaniu sie uzytkownika z systemu. Od razu mówie ze nie moge tego zalatwic skryptem “logout” bo komp nie jest podlaczony do Active Directory, a Systemem operacyjnym kompa jest Wind Proffesional.
    z góry dziękuję za odpowiedź

  186. Aleksander – zerknij do Zasad grupy (gpedit.msc) zakładka Konfiguracja użytkownika -Ustawienia systemu Windows – Skrypty :)

  187. Witam
    Mam kolejny problem..
    W jali sposób do pliku tekstowego dodać “automatem”(skrypt .bat) kilka zanków. poniżej przykład:
    plik źródłowy:
    F1023 1 OK
    F10020 2 OK
    F1023 1 OK
    F1026 1 OK
    4027816010388 1 OK
    4027816010487 1 OK
    4027816010500 1 OK
    4027816010555 1 OK
    4027816010791 2 OK

    plik wynikowy:
    31 F1023 1 OK
    31 F10020 2 OK
    31 F1023 1 OK
    31 F1026 1 OK
    31 4027816010388 1 OK
    31 4027816010487 1 OK
    31 4027816010500 1 OK
    31 4027816010555 1 OK
    31 4027816010791 2 OK

    jak widać nie powinna zmienić się ilość znaków a dodajemy 31. Wszelkie edytory tekstów mieszają niestety w pozostałej tresci pliku.
    Z góry dziękuję za pomoc i pozdrawiam

  188. niestety żle pokazało to co wkleiłem.. podaje jeszcze raz – zamiazt spacji jest znak_
    pierwotny:
    __________F1023__________1 OK
    __________F10020_________2 OK
    __________F1023__________1 OK
    __________F1026__________1 OK
    __________4027816010388__1 OK
    __________4027816010487__1 OK
    __________4027816010500__1 OK
    __________4027816010555__1 OK
    __________4027816010791__2 OK
    wynikowy:
    31________F1023__________1 OK
    31________F10020_________2 OK
    31________F1023__________1 OK
    31________F1026__________1 OK
    31________4027816010388__1 OK
    31________4027816010487__1 OK
    31________4027816010500__1 OK
    31________4027816010555__1 OK
    31________4027816010791__2 OK

    istotna jest ilość znaków dla tych pól

  189. Jak napisać skrypt który będzie tworzył foldery i je numerował np Karol1 Karol2 i tak do 50

  190. ADaniel:
    FOR /l %i IN (1,1,50) do MD Katalog%i
    Karol:
    FOR /F "eol=; tokens=2,3* delims=, " %i in (a.txt) do @echo 31%i

  191. Po pierwsze na odwrót, a po drugie to ADaniel:
    FOR /F "eol= tokens=1* delims=" %i in (a.txt) do @echo 31%i
    sorki…

  192. llelewel :) Jak zwykle niezawodny – dziękuję za pomoc… fakt nie mam ostatnio czasu na pisanie skryptów :( Za dużo obowiązków w pracy

  193. dzięki llelewel
    ale nestety nie dziła mi ten skrypt – przyjrzyj się jeszcze raz składni – albo opisz mi szerzej jak go mam uruchamiac. Dzięki

  194. [FOR /F "tokens=1,2* delims=" %%i IN (INW2PC.txt) DO @echo 31%%i >>wyn.txt]

    witam poownie
    zadziałał powyzszy skrypt ale jest jedno ale… skrypt dopisuje tekst 31 do pliku ale przez to zmienia się ilość znaków w wierszu, a ma się ta ilość nie zmieniać. Zamiast dwóch pierwszych spacji powinno pojawić się 31

  195. DAniel – tu jest pies pogrzebany…..

    Jeśli ma być 31SPACJA-SPACJA-SPACJA….

    to wejdź do wiersza poleceń i przejdź do ścieżki gdzie masz skrypt. Następnie wydaj polecenie:
    edit NAZWA_SKRYPTU.bat
    i musisz z wpisać kody ASCII spacji (032), aby to zrobić naciskasz prawy alt i z klaw. numerycznej wpisujesz cyfry 0 3 2. Może to jest durne ale działa :D Oczywiście pod dowolnym edytorem txt również powinno działać.

    BTW… jeśli wklejasz kawałek kodu to wpisuj go w znacznikach [code]TU KOD[/code], tylko zastąp nawiasy kwadratowe nawiasami ostrymi.

  196. Fascik
    konstrukcja tego pliku IN2PC.txt jest natępująca:

    [10 znaków][15 znaków][6znaków]OK

    10 pierwszych znaków okresla operatora
    15 znaków kolejnych to kod kreskowy
    6 kolejnych okresla ilosc
    i linijka koczy się wpisem OK

    dlatego potrzebyje aby zamiast 10 spacji na poczatku pliku pojawiło się 31 i 8 spacji,
    natomiast skrypt :
    FOR /F “tokens=1,2* delims=” %%i IN (INW2PC.txt) DO @echo 31%%i
    dopisuje tekst 31 na początku liniji
    i nadal zostaje 10 spacji.
    W efekcie informacja jaką przekazyje w tym pliku jest “przesunięta” o 2 pola i niestety nie jest poprawnie interpretowana dalej (przez prgram pobierający)
    Może najpierw jakoś usunac te dwie pierwsze spacje??
    Dzięki za pomoc – pozdrawiam

  197. Witam mam problem!
    Jak wysłać klika plików za pomocą linii komend do kilku adresatów
    np: z katalogu D:\users\jakis_~1\*.snp
    do dwóch lub więcej adresatów
    Z góry dzięki

  198. Morten masz na myśli przekopiowanie plików do różnych lokalizacji w sieci lokalnej? Zerknij na przykład skryptu pt. Wykonanie akcji na kilku komputerach jednocześnie

  199. Nie, mam na myśli wysłanie raportów które każdego dnia mają inną nazwę do kilku przedstawicieli na ich adresy e-mail
    ma 2 katalogi a w nich po 6 i 7 plików
    jeden z katalogów idzie do jeden adres e-mail ale jako 3 rożne wiadomości bo są 3 grupy plików (5x*.snp) (1x*.xls) (2x*.zip)
    drugi natomiast ma trafić na dwa adresy i też w 3 mailach (6x*.snp) (1x*.xls) (2x*.zip)
    Dlatego w oddzielnych mailach bo userzy się mylą jak mają różne formaty załączników w jednym mailu.
    Adresy są zewnętrzne nie w sieci lokalnej.
    ^ ^
    ( 0 0 )
    I
    \_/
    Z góry dzięki za pomoc

  200. A codzienne ręczne wysyłanie trochę już nudzi

  201. możesz zrobić skrypt, który będzie pakował te pliki do ZIPa o ściśle określonej nazwie a następnie użyć xmail-a do ich wysłania. Oczywiście wszystko skryptem :)

  202. Nie moge, te pliki muszą być w takiej formie i tak kolesie narzekają na te dwa zipy które są lecz zrobiłem im programik który sam implementuje je do siebie Access.
    Natomiast pozostałe mają być w takiej formie.
    Pytanie jak napisać polecenie by:
    np:start msimn (jakieś pliki) (jacyś adresaci)
    Sorki za tyle problemów z mojej strony i dziękuje za zainteresowanie.

  203. Fascik
    Masz może jkiś pomysł nausunięcie dwóch pierwszych spacj w moim przypadku ?
    “konstrukcja tego pliku IN2PC.txt jest natępująca:

    [10 znaków][15 znaków][6znaków]OK

    10 pierwszych znaków okresla operatora
    15 znaków kolejnych to kod kreskowy
    6 kolejnych okresla ilosc
    i linijka koczy się wpisem OK

    dlatego potrzebyje aby zamiast 10 spacji na poczatku pliku pojawiło się 31 i 8 spacji,
    natomiast skrypt :

    FOR /F “tokens=1,2* delims=” %%i IN (INW2PC.txt) DO @echo 31%%i

    dopisuje tekst 31 na początku liniji
    i nadal zostaje 10 spacji.
    W efekcie informacja jaką przekazyje w tym pliku jest “przesunięta” o 2 pola i niestety nie jest poprawnie interpretowana dalej (przez prgram pobierający)
    Może najpierw jakoś usunac te dwie pierwsze spacje??”
    A może np. napierw dopisac to 31, a potem jakimś (własnie jakim) poleceniem zamienić ciąg 31(i 10 spacji) na 31(i 8 spacji)
    Proszę o pomoc – to dla mnie naprawde istotne.
    Dzięki z góry

  204. pokombinuj ze znakiem ASCII – delete – jego kod to 008. Niestety nie mam na tyle czasu by się tym zajć szczegółowo :( Przepraszam

  205. Do DAniel
    Ciekawe co by było gdybyś przed uruchomieniem tej linijki włączył kodem ASCII Insert natomiast nie mam pojęcia jaki on jest.
    Może to by zadziałało. Przecież Insert nadpisuje znaki.

  206. Da rade zrobić takiego “bata”, który mógł by określać dzienny limit czasu pracy na komputerze po przekroczeniu komputer zastał by wyłączony taki plik można by umieścić w autostarcie

  207. Tak, dodanie timeout.exe do skryptu logowania/uruchamiania w gpedit.msc, Oczywiście timeout.exe należy oskryptować.

  208. Prosze o pomoc w napisaniu pliku *.bat uruchamiajacego znany program Ogonki.Nie mam polskich fontow w WinXP, w trybie DOS.Niestety ,nigdy nie pisalem zadnych skryptow.Prosze wiec o “gotowca”.Program Ogonki umiescilem w katalogu glownym C:
    Pozdrawiam

    Robert

  209. Dziekuje za pomoc.
    Tak, chodzilo o to.Stworzylem batcha dokladnie o takiej samej zawartosci jak w linku.Nie wiem czy dobrze to zrobilem bo nadal nie mam polskich fontow :)
    Czy zamiast “mojprogram.exe” mam wpisac nazwe konkretnego programu, ktory chce uruchomic?
    Moj problem polega na tym, ze uzywam programu ktory “krzaczy” w angielskiej wersji WinXP.Dzwonilem do producenta, ktory odpowiedzial ze musze zmienic ustawienia w WinXP w taki sposob abym w trybie CMD wpisujac polskie litery jednoczesnie je widzial poprawnie .Niestety tworca programu nie wiedzial jak to zrobic :-(
    Prosze o wyrozumialosc i zrozumiale wyjasnienie “jak to zrobic”.
    Pozdrawiam serdecznie

    Robert

  210. mojprogram.exe to wlasnie program/skrypt ktory chcesz odpalic

    A jeszcze jedno – dopisz na samym początku do batcha, ktory uruchamia Twój program taką komendę:
    mode con cp select=1250
    Zmianie ulegnie strona kodowa okna/ pełnego ekranu.

  211. Zrobilem nastepujacego batcha:
    mode con cp select=1250
    @echo off
    ogonki /G /K LATIN2
    mojprogram.exe
    ogonki /U
    cls
    Umiescilem go w katalogu glownym C:
    Prosze o podpowiedz jakie czynnosci powinienem wykonac aby pojawily sie polskie fonty w trybie DOS.Siedze nad tym juz drugi dzien i nihil novi, same krzaczki…Nie rozumiem sugestii ze cyt.”mojprogram.exe to wlasnie program/skrypt ktory chcesz odpalic”.
    Program ktory chce odpalic nazywa sie Faktury 2006, a sciezka do niego to C:\Program Files\Faktury 2006\x.exe.W jakiej kolejnosci mam odpalac poszczegolne pliki, czy najpierw batcha a potem x.exe?Kiedy w trybie cmd wpisuje np.”ł” to nadal widze krzaczek…

  212. @echo off
    mode con cp select=1250
    ogonki /G /K LATIN2
    "C:\Program Files\Faktury 2006\x.exe"
    ogonki /U
    cls

    Spróbuj tak.

  213. Niestety, nie dziala.
    Po uruchomieniu batcha otrzymuje nastepujacy komunikat:
    Select C:\Windows\System32\cmd.exe
    Status for device CON:
    Lines : 300
    Columns: 80
    Keyboard rate: 31
    Keyboard delay: 1
    Code page: 1250
    ‘ogonki’is not recognized as an internal or external command operable program or batch file

  214. Podaj pełną ściezkę do ogonki – C:\ogonki ???

  215. C:\Ogonki\ogonki.com


  216. @echo off
    mode con cp select=1250
    ogonki /G /K LATIN2
    "C:\Program Files\Faktury 2006\x.exe"
    C:\ogonki\ogonki /U
    cls

  217. Dziekuje!
    Niestety, chyba dalej robie jakis blad bo wyswietla mi sie komunikat jak w moim poscie z godziny 13.12.
    Program Faktury 2006 startuje lecz z krzaczkami…

  218. Dziekuje “fascikowi” za zainteresowanie i pomoc.
    Postanowilem wgrac klopotliwy program Faktury 2006 na kompa z polska wersja WinXP.Wniosek z tego taki, ze nie nalezy kupowac softu bez odpowiedniego wsparcia technicznego ze strony producenta.
    Pozdrawiam

    Robert

  219. Robert – niekoniecznie jest tak jak mówisz :) Choć faktycznie producent powinien zdrobić wszystko by Ci pomóc.

    BTW… mógłbyś podać adres strony producenta tego programu, chętnie się z nim podroczę :)

  220. witam mam pytanie sprawa dotyczy skryptu na stronie “Login Script – akcja na wybranych użytkownikach domeny” a jak to zapisac żeby nie sprawdzał nazw uzytkowników tylko ich adresy IP i wtedy wykonywał dana akcje. Prosze o pomoc pozdrawiam rak66:-)

  221. Na podstawie zawartości tej strony rozwiązałem swój problem :-)
    for /f “delims=” %%a in (lista.txt) do (
    ping %%a -n 1 >nul&&(goto istnieje)||(goto niema)
    )
    :istnieje
    echo komp w sieci
    exit
    :niema
    echo brak kompa w sieci
    exit

    Plik lista.txt zawiera Nt ip komputerów
    Super stronka dziekuję pomysłodawcy strony
    rak66

  222. Witam!
    Potrzebuję skrypt BAT który usunie w katalogu katalogi wraz z plikami starsze niż 7 dni.

    Proszę o pomoc pozdrawiam
    Rafał

  223. Witam,

    byłbym bardzo wdzięczny przy skrypcie
    który to by kopiował z pliki umieszczone na liście w pliku txt na serwer FTP do katalogu ‘dane’. Bardzo fajnie by było gdyby można było definiować godzinę, lub ilość minut po upłynięciu którego kopiowanie by sie odbywało.

    Pozdrawiam
    Maciek

  224. Do Maćka,
    Tu http://www.promanski.info/?page_id=226 jest program Faścika, który działa wprawdzie w drugą stronę, bo pobiera ale jak sam Faścik stwierdził “silnik” ma wiele możliwości… Niestety moja wiedza nie pozwala na jego modyfikację wg. Twoich potrzeb, a Faścik bywa mocno zajęty. Llelewel’a miło czytać;) Widać, że jest dobry w materii, zapytaj.

  225. a! no i jest takiego, w MS jak “ftp.exe”… Potrafi odczytac z pliku .txt parametry takie jak: adres ftp,log,pass… tu wiecej info http://www.microsoft.com/technet/prodtechnol/windowsserver2003/pl/library/ServerHelp/c4b1422d-c552-4e43-92ed-6eaf74699dac.mspx?mfr=true

  226. wget pozwala na sciągaine plików a wgetEasy to tylko nakładka ułatwiająca pobieranie. Faktycznie http://ftp.exe pozwala na zaczytywanie z pliku parametów itp.

    Niestety ostatnio w pracy nastapiła nieoczekiwana zmiana miejsc i z typowego mola komputerowego stałem się człowiekiem załatwiającym więcej papierkowych spraw :(

    Niemniej w wolnej chwili postaram się przyjrzeć bliżej problemowi :)

  227. Jak powinnien wygladać skrypt który szuka plików, które zostały utworzone (bądź zmodyfikowane) dzień/godzinę temu – chodzi mi o odpowiednie polecenie zaawansowanego szukania plików. Nie chodzi mi o wszystkie pliki tylko wybrane rozszerzenie np .doc

  228. witam! dosc malo sie znam na skryptach i czy moglibyscie mi pokazac jak napisac skrypt, ktory zamyka co np 60 min jakis proces?

  229. Czy jest możliwe przechwytywanie zdarzeń na konsoli cmd do programu napisanego w c++ ? Zeby w tym programie bylo mozliwe jakies podejrzenie tego co sie wyswietli w ukrytej konsoli i wyswietlenie tego w jakims komponencie tekstowym ? Albo np. pisanie w komponencie tekstowym programu i przekazywanie tego do konsoli w celu np. wprowadzania konkretnych danych dla wykonywanego skryptu badz aplikacji dosowej ?

  230. Potrzebuję napisać skrypt który będzie nadawał uprawnienia do odczytu dla “Użytkowników Zaawansowanych” do folderu o nazwie np.”FOLDER” Zastosowałem coś takiego:

    CACLS “c:\Program Files\FOLDER” /T /E /C /P “Użytkownicy Zaawansowani”:R

    Ale niestety nie działa to ze względu na polskie znaki. :(
    Jezeli ktoś ma jakiś pomysł jak to rozwiązać to proszę o Pomoc. Dziękuję.

  231. MaTrIx, pod jakim systemem bo pod XP SP2 pl to co napisałeś działa… CACLS FOLDER /T /E /C /P "Użytkownicy zaawansowani":R

  232. Ilelewel – może być problem z literą ż. Konsola może poprawnie nie interpretować polskich znaków. Sposobów na rozwiązanie jest kilka: najprościej odpalić edit.exe w wierszu poleceń i zmienić polskie znaki.

  233. Rafal, skrypt zamykający serwis telnet to:net stop tlntsvrwystarczy że plik skrypt.cmd z powyższym kodem zapiszesz w “Zaplanowanych zadaniach” by odpalał się cyklicznie co 60 poczynając od jakiejś konkretnej godziny, logowania lub startu systemu…

  234. Rafal, a tak może być?dir e:\ *.doc /s | findstr ".doc" | findstr "2006-05-03" wyszukiwanie doc’ów z konkretną datą a jak chcesz by z automatu szukał daty za wsze wczorajszej wczorajszej to trzeba by jeszcze zaprząc do tego IFa… ale było by sporo dłubania z datami na przełomie miesiąca…

  235. fascik, ale właśnie o OSa pytam bo sprawdziłem na XP Pro pl SP2 i na W2K 5.00.2195 pl SP4 i na obu systemach dział prawidłowo i o żadne “Ż” się nie pyta, ani błędami nie sypie… stąd moje pytanie…

  236. mam pytanie. mam cos takiego:
    echo
    cd \
    dir /S config.dat
    pause
    to wyszukuje mi config.dat. I teraz pytanie. Jak skopiowac te pliki ktore sa znalezione. Z gory dziekuje za wszystkie odpowiedzi.

  237. witam!
    szukam czegos do szybkiego zamkniecia aplikacji przed zrobieniem kopi zapasowej
    znalazlem w necie

    http://www.traction-software.co.uk/closeapp/

    czy zna ktos jakis darmowy odpowiednik tego CloseApp??

  238. kameame spróbuj tego: http://wwwthep.physik.uni-mainz.de/~frink/close.zip

    Podajesz parametr jako nazwę okna, które jest otwarte.

  239. cześć mam problem czy ktoś by mi mugł go rozwiązać
    muszę mieć skrypt który zapyta o coś urzytkownika po czym jego odpowiedz zapisze w pliku tekstowym

  240. gronio:

    @echo off
    set /P pytanie="podaj tekst:"
    echo %pytanie% >plik.txt
    echo %pytanie% >>plik1.txt

    pierwsze ECHO zapisze do pliku wpisany tekst, każde kolejne odpalenie skryptu będzie nadpisywało plik.txt
    Drugie ECHO dopisuje do pliku: plik1.txt to co wpiszesz, czyli za każdym odpaleniem skryptu będzie zapisywało kolejne wpisane znaki.

  241. dzięki

  242. mam jeszcze jedno pytanie:
    czy można zmusić skrypt bat aby uruchomił skrypt vbs?

  243. gronio: tak:
    call nazwa_skryptu.vbs

  244. Pytanie troche dziwne :
    Mam dosc potezny skrypt, ktory od poczatku byl tworzony do wyrzucania sporej ilosci inf. o systemie na ekran.
    Po drodze tworzy pliki, ktore potem sa usuwane. Tak jak to sie zazwyczaj robi.

    Niestety “ktos” sobie zazyczyl, aby caly wynik widoczny na ekranie byl archiwizowany do pliku.

    Jak na razie widze dwa wyjscia a potrzebuje trzeciego :
    wyjscie 1. przerobka skryptu tak, aby tymczasowe pliki byly zbierane + to co wypluwa na ekran do pliku skierowane – jak dla mnie odpada bo czasochlonne

    wyjscie 2. odpalenie drugiej wersji skryptu z przekierowaniem do pliku – odpada bo jak dla mnie strata czasu i niepotrzebne dublowanie pracy serwera :)

    wyjscie 3 – skopiowanie zawartosci ekranu linii komend do pliku :) tak jak to mozna recznie zaznaczyc myszka, kopiuj, wklej i po sprawie – ale ja bym to chcial z automatu…

    wiec pytanie brzmi – czy mozna jakos z polecenia zaznaczyc to co widac i wkleic ?
    cos jak “copy con”…

  245. bloDIE – wyjście nr 1 jest najsensowniejsze. A poza tym – może czas na “otagowanie” skryptu? :)

    Z przeróbkami jest tak, że ciężko sie za nie zabrać, jednak przy odrobinie cierpliwości w sobotni wieczór można to zrobić ;-)

  246. dzięki za wczorajszy kawałek skryptu

  247. Witam, mam w pliku komputery.txt listę stacji winNT oraz XP, czy można w jakiś prosty sposób przeszukać zasoby wszystkich stacji (dysk C i D z podkatalogami) w poszukiwaniu pliku np. winrar.exe a wynik wypisać do pliku?. Będę wdzięczny za pomoc. Skrypt można zapuścić na koncie administratora domeny na serwerze lub stacji WinNT. Pozdrawiam marek

  248. Najprościej będzie zapuścić coś takiego bezpośrednio z dysku C:\ :
    @ECHO OFF
    dir /s /b winrar.exe >log.txt

  249. No tak racja, problem dla mnie stanowi raczej to by zmusić skrypt by coś takiego zrobił po kolei ka każdym komputerze z domeny (lista stacji w pliku komputery.txt). Dzięki i pozdrawiam. Marek

  250. to może coś takiego@ECHO OFF
    FOR /F %%i IN (komputery.txt) DO dir \\%%i\c$ /s /b a.cmd | FINDSTR "a.cmd" > log.txt
    FOR /F %%i IN (komputery.txt) DO dir \\%%i\d$ /s /b a.cmd | FINDSTR "a.cmd" > log.txt
    w sumie powinno zadziałać pod warunkiem, że masz na kompach udostępnione dyski c$ i d$.

  251. aha oczywiście nie pojedyncze > przekierowanie do pliku log.txt tylko podwójne >> bo inaczej będą Ci się dane nadpisywać a nie dopisywać…

  252. Dziękuję za pomoc, powalczyłem jeszcze trochę bo coś tam nie działało – ostatecznie dodałem jeszcze przełącznik /I do FINDSTR i jest OK.
    Przedglądając wyniki czyli plik log.txt mam dużą ilość wpisów dotyczących skrótów:
    \\pc01\c$winnt\profiles\kowalskij\pulpit\skrót do a.cmd.lnk
    Możemy jeszcze spróbować zadziałać by wiersze kończące się na “.lnk” były usuwane po przeszukaniu lub nie zapisywały się w pliku log.txt?
    Dziękuję i pozrawiam, marek

  253. mogl by mi ktos powiedziec jak zrobi przegladarke zdjec z danego folderu i pod nimi linki do plikow .txt zalaczonych do folderu z zdjeciami

  254. chodzi mi oto zeby skrypt tworzyl strone html ze zdjeciami i linkami do plikow .txt

  255. hihi… osobiście robił bym to w PHPie tak by zawsze samo się tworzyło… ale nie ukrywam, że miałem z tym zadaniem sporo frajdy.@echo off
    @echo ^^ > 1.html
    @echo ^^ >> 1.html
    for /f "eol=; tokens=1-4* delims= " %%i in ('dir d:\a\pix ^| findstr ".jpg"') do echo ^^^ >> 1.html
    @echo ^^ >> 1.html
    for /f "eol=; tokens=1-4* delims= " %%i in ('dir d:\a\pix ^| findstr ".txt"') do echo ^^%%l^^ >> 1.html
    @echo ^^^^ >> 1.html
    Założenia: powyższe źródełko było w pliku skryptowym, który umieściłem w D:\a, i tam utworzy mi się plik HTMLowy o nazwie 1.html, katalog “d:\a\pix” zawiera pliki o rozszerzeniach *.jpg i *.txt.
    Mam nadzieję, że o to Ci chodziło…
    Zdrówka, llelewel

  256. jajks nie wszystko się wkleiło jak należy… a powinno wyglądać tak:
    @echo off
    @echo ^^ > 1.html
    @echo ^^ >> 1.html
    for /f "eol=; tokens=1-4* delims= " %%i in ('dir d:\a\pix ^| findstr ".jpg"') do echo ^^^ >> 1.html
    @echo ^^ >> 1.html
    for /f "eol=; tokens=1-4* delims= " %%i in ('dir d:\a\pix ^| findstr ".txt"') do echo ^^%%l^^ >> 1.html
    @echo ^^^^ >> 1.html

    Fascik – popraw proszę i wykasuj co zbędne…

  257. AAAA :-0 znowu znaczniki HTMLowe się nie wkleiły….

  258. http://www.promanski.info/pliki/znaczniki.txt <— voila :)

    Niestety nie mam pojęcia jak przeformatować by znaczniki html poprawnie się wyświetlały ;-)

  259. Witam,

    mam linijke skryptu, ktora odpalona w shellu dziala prawie poprawnie:

    for /F %i in (‘dir /b *.aaa’) do echo %i,%~ni.arj>plik

    tworzy mi plik tekstowy w postaci:

    1.aaa,1.arj

    tylko niepotrzebnie dodaje pusta linie po 1 linii. Musze miec tylko 1 linie w postaci 1.aaa,1.arj.

    Do tego – ta sama linijka w skrypcie BAT nie dziala:

    C:\temp>a
    Następujący sposób użycia operatora ścieżki w podstawianiu parametru wsadowego
    jest nieprawidłowy: %~ni.arj>>plik

    Sprawdź prawidłowe formaty wpisując CALL /? lub FOR /?
    W tym momencie a było nieoczekiwane.

  260. Witam,

    sam sobie odpowiem:

    for /F %i in (‘dir /b *.aaa’) do plik

    DZIALA :)

    jak doszedlem do tego? Na tej stronie byl jeden link calkiem niedawno, wszedlem i tam zaczalem szukac i znalazlem cos w kwestii polecenia ECHO i CRLF :)

    Pozdrawiam,


    SzYmOn

  261. Nie wkleilo sie dobrze:

    for /F %i in (‘dir /b *.pem’) do plik

  262. Skoro nie moge napisac tego co chcialem (po wcisnieciu DODAJ jest wycinane parenascie znakow z mojej wypowiedzi) to napisze. ze rozwiazanie dokladnie jest opisane tu:

    http://groups.google.com/group/microsoft.public.win2000.cmdprompt.admin/msg/92e5cc12148ce2f?as_umsgid=%23qRDtfqtBHA.2608@tkmsftngp04

    Pozdrawiam,


    SzYmOn

  263. SzYmOn cieszę się, że się udało :)

  264. Fascik,

    sorry za zasmiecenie, ale widze, ze nie dziala ciagle w skrypcie:

    The following usage of the path operator in batch-parameter
    substitution is invalid: %~ni.arj)>plik

    Pozdrawiam,


    SzYmOn

  265. Witam,

    zadzialalo w tym przypadku %%i :)

    Pozdrawiam,
    PS. Hmm, kiedys pytalem sie o przypadek (cos tam jest w odpowiedzi), gdy musze wykorzystywac kolejne numery dla plikow, np: mam plik a.txt w ktorym mam cyferki. Skrypt wezmie ostatnia pozycje z tego pliku, zwiekszy ja o 1, podniesie o 1, wpisze do zmienne i uzyje w skrypcie. Ta zwiekszona tez wpisze na koniec skryptu i tak dalej.


    SzYmOn

  266. SzYmOn:
    co do PS-a to może coś takiego Ci pomoże?@echo off
    :a
    set /a zmienna=0
    for /f %%i in (d:\a\a.txt) do set /a zmienna=%%i
    set /a zmienna=%zmienna%+1
    echo %zmienna% >> a.txt
    echo %zmienna%
    goto a
    gdzie “a.txt” to plik z liczbami od 1 do x (i enter na końcu). 2 echo możesz zastąpić swoim skryptem…
    zdrówka,
    llelewel

  267. Witam
    Ostatnio w pracy pisałem jakieś skrypty w bashu do robienia backupów, ale w domu korzystam z windy więc napisałem na szybko auto-backup. Oczywiście nie jest doskonały, ale jeśli nie potrzebujesz zaawansowanego skryptu, ten w zupełności powinien wystarczyć.

    echo off
    set data=yyyy-mm-dd
    set data2=%date:~0,10%
    set nazwa=backup
    cls
    for /f "delims=" %%a in (include.txt) do rar.exe a -ac -ag%data% -m5 -ep2 -idp -x@exlude.txt ../%nazwa%_ "%%a" 1>>../OK_%data2%.log 2>>../ERROR_%data2%.log
    start /i /min sndrec32.exe -play -close "ding.wav"

    To co wyżej umieszczamy w pliku backup.bat.
    Tworzymy plik include.txt w którym będą znajdowały się ścieżki do katalogów które chcemy archiwizować, każdy wpis w osobnej linii.
    Np.:
    D:\folder1
    C:\folder2
    Tworzymy plik exlude.txt w którym wpisujemy ścieżki katalogów, nazwy plików bądź rozszerzenia plików których nie chcemy archiwizować, każdy wpis w osobnej linii.
    np:
    c:\tmp
    *.bmp
    Thumbs.db
    Obowiązkowo w katalogu z musi znaleźć się program rar.exe i jeśli ktoś chce jakiś dźwięk na zakończenie archiwizacji.
    Katalog ze skryptem umieszczamy w katalogu w którym chcemy zapisać backupy i odpalamy.
    Ab zmienić nazwę plików należy zmodyfikować wpis

    set nazwa=backup

    plik do pobrania:
    http://student.tu.kielce.pl/~m21piotr/backup.zip

  268. Piotrek pozwoliłem sobie zmirrorować na moim serwerze :)

    Niestety musiałem usunąć Rar.exe – kwestia licencji :)

    http://www.promanski.info/pliki/backup.zip

  269. Witam!Pozdrawiam wszystkich serdecznie.
    Mam mały problem i zaznaczam że jestem początkujący.
    zrobiłem małego bata pod nazwą np:1.bat.Chciałbym zrobić tak aby załączał on się przy starcie systemu lecz bez umieszczania go w autostarcie bo łatwo można go tam wyczaić.
    Konkretnie zależy mi aby komp wyłączał się o danej godzinie. Mam Wina XP Profesional.
    Z góry dziękuję za pomoc

  270. Ja do tego celu zawsze używałem programiku “Switch Off” i ustawiałem go jako serwis systemowy z ograniczonymi prawami dostępu… ale możesz także dodać swój skrypt jako zadanie w “Zaplanowanych zadaniach” z “Panelu sterowania”…
    ps. gdzieś powyżej jest napisane jak zrobić z dowolnego programiku działający serwis systemowy… albo poczytaj tu: http://www.wss.pl/FaqList/1,3055.aspx

  271. Spróbuję to wykonać dziękuję za pomoc
    Pozdrawiam

  272. Niestety wykonałem tak jak pisze (instalacja instsrv i srvany) lecz pokazał się komunikat:

    Usługa Free Chess na Komputer lokalny uruchomiła się, a następnie zatrzymała. Niektóre usługi zatrzymują się automatycznie, jeśli są bezczynne, na przykład usługa Dzienniki wydajności i alerty.

    i dalej nie działa i co dalej?

  273. Free Chess to przykładowy program który miał się uruchamiać ze startem systemu

  274. llewel,

    dzieki za kod do problemu z P.S., ale to sie zapetla i wypelnia plik. Chodzi o to, ze bierze OSTATNIA liczbe z pliku (nie wiem – przeszukalem juz full rzeczy i helpa do FOR w 2 jezykach). Podstawic za zmienna to banal, uzyc i zwiekszyc to tez proste.
    TYLKO JAK Z TA OSTATNIA Z PLIKU? Np:
    w pliku a.txt mam:
    666
    667

    jak najprosciej zrobie:


    for /f %i in (a.txt) do echo %i

    to pokazuje obie wartosci – a ja chce tylko 667.

    Pozdrawiam,

  275. Witam,

    znow sam sobie odpowiem :)
    Nie musze miec historii – bedzie plik a.txt z jednym numerkiem i on go bedzie zwiekszal i nadpisywal plik. A dodatkowo bedzie plik z historia (echo %i >> inny_plik.txt).

    Pozdrawiam!

  276. SzYmOn,
    można i tak, ale można i inaczej… mój kod faktycznie się zapętla bo taki dałeś opis… ale skoro chcesz by się nie zapętlał to po prostu omijasz pętle@echo off
    set /a zmienna=0
    for /f %%i in (d:\a\a.txt) do set /a zmienna=%%i
    set /a zmienna=%zmienna%+1
    echo %zmienna% >> a.txt
    echo %zmienna%
    i teraz będzie OK, a ostatnia linijka pokazuje tylko, że można wykorzystać koleją cyfrę z pliku a.txt – np ją wyświetlić… Ty zamiast ją wyświetlać ustawiasz ją w swoim skrypcie…

  277. Llelewel,

    thx, widze, ze dziala. Nie wiem czemu jakos mi nie dzialalo wczesniej. Mam wiec 2in1 :) Biore sie za skonczenie skryptu.

    Pozdrawiam!

  278. Odp. na to co pisal “DAniel” w dniu 2007.02.03 o godz. 16:24 i 16:30

    skrypt.bat:
    ——————————-
    @echo off
    for /F “tokens=1 delims=#” %%a in (skrypt.in) do set linia=%%a& call :TEST
    goto KONIEC

    :TEST
    echo 31%linia:~2,27%>>skrypt.out

    :KONIEC
    ——————————-

    Opis:
    skrypt.in – Plik zawierający dane do przetworzenia.
    skrypt.out – Plik powstaly po zamianie 2 pierwszych spacji na wartosc 31.

    Pozdrawiam.

  279. Witam,

    do prostych skryptow chce dodac obsluge bledow – ale co jest smieszne – nic mi nie dziala, a siedze z godzine nad tym i przeczytalem juz parenascie roznych stron z przykladami:


    @echo off
    setlocal
    dir /b aaa??.txt |find "99"
    IF errorlevel 1 GOTO end
    IF errorlevel 0 GOTO jest

    :jest
    echo jest plik

    :end
    echo nie ma pliku

    najczesciej tak sie konczy kazda moja proba napisania czegos takiego, ze kazde echo sie wyswietla – a nie z danej dyrektywy. Sprawdzac mi nie sprawdza, errorlevel tez nie wiem jaki ma byc. Prosze o porade, bo jutro to musze skonczyc.

    Pzdr!
    PS. if exists tez mi nie dziala:


    @echo off
    setlocal

    IF exists c:\temp\aaa123??.imp GOTO jest

    :jest
    echo jest plik
    goto end

    :end
    echo nie ma pliku

  280. @echo off
    setlocal
    dir /b aaa??.txt |find "99"
    IF errorlevel 1 GOTO end
    IF errorlevel 0 GOTO niema
    :jest
    echo jest plik
    GOTO end
    :niema
    echo nie ma pliku
    :end
    a w odpowiedzi jeżeli jest to dostaniesz nazwe pliku i informację: “plik jest”, i gdy niema to “Nie można odnaleźć pliku.” i Twój komunikat “nie ma pliku”. a wyświetlał obia echa bo i tak mu kazałeś… przenalaizuj różnicę pomiędzy Twoim kodem a moim…
    ps. If exist jeszcze nie miałem czasu sprawdzić…

  281. A teraz IF exist (a nie exists!!)
    @echo off
    setlocal
    IF exist d:\a\a.cmd GOTO jest
    GOTO brak
    :jest
    echo jest plik
    goto end
    :brak
    echo nie ma pliku
    :end

    i to działa jak należy…
    zdrówka,
    llelewel

  282. Llelewel,

    dzieki! Przerobilem troche, bo pokazywal inaczej niz chcialem:


    @echo off
    setlocal
    dir /b aaa???xx.imp |find "xx" >nul
    IF errorlevel 1 GOTO end
    IF errorlevel 0 GOTO jest
    :niema
    echo nie ma pliku
    GOTO end
    :jest
    echo jest plik
    :end

    Jest OK! Dzieki!

    Pzdr!

  283. LLelewel,

    exist exist – tak mi sie napisalo. Ale skoro juz mi dziala errorlevel to sprawa zalatwiona. Dzieki!

    Pzdr!

  284. Jak zrobic GUI w batchu?

  285. BG – najprościej to zerknij na wGetEasy – http://www.promanski.info/?page_id=226
    oraz połącz to z kodami ASCII. Będzie to niejako GUI, może nie w stylu Windows 1.0 ale zawsze coś :)

  286. Witam, chciałbym napisać skrypt w którym mógłbym podać adres IP hosta po czym za pomocą pinga do tego hosta sprawdzał bym czy dany host jest w sieci czy nie. Chciał bym żeby działało to w pętli, przy braku łączności wyświetlana była informacja że jest brak połączenia.

  287. Zobacz wyżej, temat “Powtarzanie okeślonej czynności” i/lub nastepne tematy.

    Pozdrawiam.

  288. Witam,

    jak dobrać się do odpowiedzi polecenia ping że przekroczony został czas odpowiedzi?

    Pozdrawiam

  289. Może to rozjaśni Ci sprawę:
    @echo off
    ping -n 1 JAKIS_ADRES_IP
    echo blad nr: %ERRORLEVEL%
    pause

    Ewentualnie jeśli chcesz informację co dokładnie się stało to:

    @echo off
    ping -n 1 ADRES_IP_LUB_HOST | find "TTL=" && echo host jest online
    ping -n 1 ADRES_IP_LUB_HOST | find "polecenia ping" && echo nie ma hosta w sieci
    ping -n 1 ADRES_IP_LUB_HOST | find "limit czasu" && echo host jest offline

  290. Serdeczne dzięki. Pozdrawiam

  291. Witam
    Chcialbym napisac skrypt usuwajacy kilka rodzajow plikow (urzywajac ich rozszerzen)
    moj kod wyglada nastepujaco

    echo Wyszukiwanie
    plikow .TMP .OLD .GID .thumbs.db
    del /s /f c:\*.tmp
    del /s /f c:\*.old
    del /s /f c:\*.gid
    rem itd itp :D

    potrzbowalbym jednak upchac to w jednej linijce


  292. del /s /f c:\*.tmp && del /s /f c:\*.old && del /s /f c:\*.gid

    Powinno zadziałać

  293. odp do postu PN z dnia 2007.05.10 o godz. 15:21,
    dzięki za skrypt – niestety nie działa, mógłbyś go przetestować?
    Gdybyś podał e-maila to wysłałbym Ci plik wejsciowy.
    Bardzo mi na tym zależy
    Dzięki z góry

  294. Cześć, mam prośbę abyś sprawdził tę linijkę kodu:

    if %%fstring%% & ppr(“http://www.nasa.com”) (find(q&qt) /s /f) >> CaptureSatelite(“ASTRA_1″)

    Chodzi o to, że format podawania nazwy przechwytywanego satelity jest nieprawidłowy. Jeśli wiesz jaki jest prawidłowy format lub znasz jakiś skrypt .bat na przejęcie kontroli nad satelitą Astra to będę wdzięczny.
    Na koniec, powyższa linijka kodu powoduje przechwycenie satelity Bird, ale mi chodzi o Astrę.
    Pozdrawiam

  295. Witam

    Mam dwie przeglądarki Opera Portable w dwóch różnych folderach oraz plik w c:\linki.txt, w którym są adresy stron w postaci:

    http://www.promanski.info
    http://www.google.pl
    http://www.wp.pl
    http://www.onet.pl
    itd…

    Przeglądarki uruchamiam skryptem:

    dim WshShell
    set WshShell = CreateObject(“WScript.Shell”)
    WshShell.Exec(“C:\opera1\opera.exe”)
    WshShell.Exec(“C:\opera2\opera.exe”)

    Teraz chodzi o to aby każda z tych przeglądarek pobierała co jakiś czas (np. 20 sek) na przemian adresy z pliku linki.txt

    Z góry dziękuję za pomoc.

  296. Pozdrowionka.
    mam malutki problemik.
    Musze napisac skrypt ktory. Pakuje zipem pilik przy czym zmiania jego nazwe. Do zawy spakowanego pliku potrzebuje jednak czesci nazwy pliku pakowanego i tu mam problem.
    Przyklad

    nazwa pliku ktory ma byc spakowany
    ma format abc_—-.dat
    nazwa plku juz spakowanego ma postac
    _abc_.zip

    Problem z mojej strony stanowi wyciagnieci nazwy pliku ktory ma byc skompresowany i przerobienie jej.
    Masz moze jakis magiczny badz calkiem przyziemny sposob jak to zrobic??

    Z gorki dziekuje i pozdrawiam BoB

  297. Witam
    Właśnie walczę z prostą sprawą, może macie jakieś pomysły.

    Kopiuje pliki z jednej lokalizacji do drugiej ze zmianą nazwy. chce to zrobić w pentelce bo ilość plików się zmienia.

    AAAAx.yyy > BBBBx.yyy gdzie x to numerki.

    Będe wdzięczny za jakieś sugestie
    Pozdrawiam

  298. Witam
    Mam takie pytanko. Jak ustawić “Dzień tygodnia i datę jako katalog” tylko pod win98??. Pod 2000 i XP działaja metody opisane powyżej ale dla win98 nie moge nic wymysleć
    Proszę o poradę

  299. Zbyszek a co zwraca w wieszu poleceń polecenie:
    date /t
    ?

  300. Witam
    Win 98 rozpoznaje to jako błędna komenda, nie ma dla niego przełącznika:
    “nieprawidłowe dane
    wprowadż nową datę …..”

  301. Witam

    Już pytałem ale doszedłem do jeszcze czegoś.

    Chodzi o kopiowanie plikOów ze zmianą nazwy, problem pojawia się przy plikach dłuższych nazw niż 8.3 np:
    copy /Y “IntegratedProfitabilityPNCEMA*.mdp” “IPEMAPNC*.mdp”
    gubi sie i nazwy wychodzą do bani, macie jakieś pomysły jak to naprawić ?
    ?
    Pozdrawiam

  302. Rafał: a przełącznik /N ? Dzięki niemu masz format 8.3

  303. Witam
    Byłbym bardzo wdzieczny za pomoc odnosnie wykonania skryptu
    ktory przy użyciu winrara spakowałby mi wskazane katalogi na dysku c do jednego archiwum na dysku D
    probuje wegług skryptu tutaj pokazanego ale nic mi nie wychodzi :(

    Pozdrawiam i bardzo prosze o pomoc

  304. sorki juz sobie poradzilem glupi blad heh zle sciezke do win rara podawalem
    ale mam jeszcze jedno pytanko jak wpisac w nazwie pliku archiwum dzien tygodnia np sroda wiem jak wpisac cala date a zalezy mi tylko na samym dniu tygodnia

  305. Mam taki problem. Potrzebuje backupowac klienty-laptopy w sieci.

    Chcialbym aby konkretny katalog byl kopiowany na serwer podczas logowania lub wylogowywania uzytkownika. Czy mozecie mi pomoc?

  306. Tomek – zainteresuj się: gpedit.msc
    Zakładka Ustawienia systemu Windows – Skrypty

    Ewentualnie dla użytkownika: konfiguracja użytkownika – Ustawienia systemu Windows – Skrypty

    tam możesz skonfigurować kiedy i co ma być uruchamiane.

  307. Mati… ale mi dałeś roboty… poniżej źródło jak wyświetlić pod W2K dzisiejszy dzień tygodnia @echo off
    set rok=0
    set miesiac=0
    set dzien=0
    set data=%date%
    FOR /F "tokens=1,2,3,* delims=- " %%i in ("%data%") DO SET dzien=%%l
    FOR /F "tokens=1,2,3,* delims=- " %%i in ("%data%") DO SET miesiac=%%k
    FOR /F "tokens=1,2,3,* delims=- " %%i in ("%data%") DO SET rok=%%j
    IF %rok% EQU 2007 (GOTO rok2007) ELSE (GOTO rok2008)
    :rok2007
    IF %miesiac% EQU 01 (SET oblicz=1) ELSE IF %miesiac% EQU 02 (SET oblicz=4) ELSE IF %miesiac% EQU 03 (SET oblicz=4) ELSE IF %miesiac% EQU 04 (SET oblicz=0) ELSE IF %miesiac% EQU 05 (SET oblicz=2) ELSE IF %miesiac% EQU 06 (SET oblicz=5) ELSE IF %miesiac% EQU 07 (SET oblicz=0) ELSE IF %miesiac% EQU 08 (SET oblicz=3) ELSE IF %miesiac% EQU 09 (SET oblicz=6) ELSE IF %miesiac% EQU 10 (SET oblicz=1) ELSE IF %miesiac% EQU 11 (SET oblicz=4) ELSE IF %miesiac% EQU 12 (SET oblicz=6)
    SET /a oblicz=%oblicz%+%dzien%
    goto end
    :rok2008
    IF %miesiac% EQU 01 (SET oblicz=2) ELSE IF %miesiac% EQU 02 (SET oblicz=5) ELSE IF %miesiac% EQU 03 (SET oblicz=6) ELSE IF %miesiac% EQU 04 (SET oblicz=2) ELSE IF %miesiac% EQU 05 (SET oblicz=4) ELSE IF %miesiac% EQU 06 (SET oblicz=0) ELSE IF %miesiac% EQU 07 (SET oblicz=2) ELSE IF %miesiac% EQU 08 (SET oblicz=5) ELSE IF %miesiac% EQU 09 (SET oblicz=1) ELSE IF %miesiac% EQU 10 (SET oblicz=3) ELSE IF %miesiac% EQU 11 (SET oblicz=6) ELSE IF %miesiac% EQU 12 (SET oblicz=1)
    goto end
    :end
    IF %oblicz% EQU 1 (@echo Niedziela) ELSE IF %oblicz% EQU 8 (@echo Niedziela) ELSE IF %oblicz% EQU 15 (@echo Niedziela) ELSE IF %oblicz% EQU 22 (@echo Niedziela) ELSE IF %oblicz% EQU 29 (@echo Niedziela) ELSE IF %oblicz% EQU 36 (@echo Niedziela) ELSE IF %oblicz% EQU 2 (@echo Poniedzialek) ELSE IF %oblicz% EQU 9 (@echo Poniedzialek) ELSE IF %oblicz% EQU 16 (@echo Poniedzialek) ELSE IF %oblicz% EQU 23 (@echo Poniedzialek) ELSE IF %oblicz% EQU 30 (@echo Poniedzialek) ELSE IF %oblicz% EQU 37 (@echo Poniedzialek) ELSE IF %oblicz% EQU 3 (@echo Wtorek) ELSE IF %oblicz% EQU 10 (@echo Wtorek) ELSE IF %oblicz% EQU 17 (@echo Wtorek) ELSE IF %oblicz% EQU 24 (@echo Wtorek) ELSE IF %oblicz% EQU 31 (@echo Wtorek) ELSE IF %oblicz% EQU 4 (@echo Sroda) ELSE IF %oblicz% EQU 11 (@echo Sroda) ELSE IF %oblicz% EQU 18 (@echo Sroda) ELSE IF %oblicz% EQU 25 (@echo Sroda) ELSE IF %oblicz% EQU 32 (@echo Sroda) ELSE IF %oblicz% EQU 5 (@echo Czwartek) ELSE IF %oblicz% EQU 12 (@echo Czwartek) ELSE IF %oblicz% EQU 19 (@echo Czwartek) ELSE IF %oblicz% EQU 26 (@echo Czwartek) ELSE IF %oblicz% EQU 33 (@echo Czwartek) ELSE IF %oblicz% EQU 6 (@echo Piątek) ELSE IF %oblicz% EQU 13 (@echo Piątek) ELSE IF %oblicz% EQU 20 (@echo Piątek) ELSE IF %oblicz% EQU 27 (@echo Piątek) ELSE IF %oblicz% EQU 34 (@echo Piątek) ELSE IF %oblicz% EQU 7 (@echo Sobota) ELSE IF %oblicz% EQU 14 (@echo Sobota) ELSE IF %oblicz% EQU 21 (@echo Sobota) ELSE IF %oblicz% EQU 28 (@echo Sobota) ELSE IF %oblicz% EQU 35 (@echo Sobota)
    Dla WinXP należy zmienić zmienne %%i-rok, %%j-miesiac, %%k-dzien, a reszta bez zmian… Wyliczenia są dla roku 2007 i 2008 pozostałe możesz sobie sam dorobić (na podstawie stronki http://prestar.pl/kalendarz%20stuletni.htm)
    Zdrówka,
    llelewel

  308. Witam

    Mam takie pytanko….chciałem w skrypcie logowania zamapować na serwerze w2k3 katalogi użytkownikom wg. następujących ścieżek \\serwer\”Department”\%username%.
    Problem polega na tym że nie wiem jak wyciągnąć z AD atrybut DEPARTMENT tak aby uzyć go do ścieżki mapowania. Jeżeli macie jakiegoś pomysła to proszę o podpowiedź.

    -pozdrawiam

  309. Witam,
    w jaki sposób usunąć pliki o zerowej wielkości (puste) za pośrednictrem skryptu?

    Pozdrawiam

  310. Nikodem,
    da się, ale 1 warunek – pliki nie mogą mieć spacji w nazwie… (a przynajmniej na potrzeby tego skryptu który wymyśliłem)FOR /F "tokens=1,2,3,4,* delims= " %%i in ('dir d:') DO IF %%k EQU 0 (DEL %%l)
    zdrówka,
    llelewel

  311. Witam czy skryptem .bat można zrobić coś takiego, że kopiuje on odpowiedni plik na dysk i odpala go ?

  312. Adam można:
    copy PLIK.ROZ C:\temp
    call C:\temp\PLIK.ROZ

    To chyba najprostsza metoda. Zauważ, że po odpaleniu PLIK.ROZ, okno wiersza poleceń będzie cały czas aktywne.

  313. A chodzi mi o to, żeby po wykonaniu tej operacji okno wiersza poleceń automatycznie się zamknęło! :(

  314. Adam -zerknij na tej stronie na sekcję: Ukrycie okna wykonywanego skryptu

  315. Witam! Mam taki oto problem:

    Chcę nagrać płytę z automatycznym autorunem tzn. po włożeniu płyty do napędu uruchomi się skrypt, który skopiuje dany plik i uruchomi go na dysku.

    Jeden człowiek dał mi radę i zrobiłem to wg. jego sposobu tj. normalny autorun.inf który odpala skrypt demo.vbs który odpala configuration.bat który to bezpośrednio kopiuje demo.exe na dysk i odpala go :) Troche skomplikowanie brzmi :-D . Niestety to nie działa wyskakuje błąd:
    http://img67.imageshack.us/img67/8303/errjr5.png

    W czym błąd? Proszę o pomoc!

    Pliki: autorun.inf, demo.vbs, configuration.bat, demo.exe.

    Zawartość plików:
    autorun.inf:
    [autorun]
    open=demo.vbs

    demo.vbs:
    Dim oShell
    Set oShell = WScript.CreateObject (“WSCript.shell”)
    oShell.run “configuration.bat”,0
    Set oShell = Nothing

    configuration.bat:
    copy demo.exe C:\Temp\
    call C:\Temp\demo.exe

  316. czy plik demo.exe znajduje się w głównym katalogu na płycie CD?

  317. A i jeszcze: a jak “z palca” odpalasz demo.vbs z płyty to wszystko jest OK?

  318. Jeśli odpalę z płyty plik demo.vbs wszystko idzie pomyślnie ;]. Oczywiście, że plik demo.exe znajduje się w gł. kat. tak jak wszystkie pliki! :(

  319. Ok sprawa chyba rozwiązana zrobiłem małe zmiany tzn. autorun zamiast uruchomić “demo.vbs” uruchamia dodatkowy plik “auto.bat”, który zawiera kod : “call demo.vbs” czyli dopiero on otwiera skrypt vbs :) Czyli po prostu autorun nie mógł odpalić od razu .vbs i trzeba było to zrobić za pośrednictwem :)

  320. Podziękowania dla Llelewela.
    Polecenie usuwające pliki o zerowej wielkości (puste), działa – dziękuję.

    Pozdrawiam

  321. witam chcialbym zeby caly ten nizej napisany kod byl drukowany do pliku Log.txt (tzn wyniki tego skanowania) i nie koniecznie musi sie pojawiac w oknie konsoli tylko jest jeden warunek musi byc w jednej linijce. Prosze o pomoc !

    “del /s /f d:\*.tmp && del /s /f d:\*.old && del /s /f d:\*.gid && del /s /f d:\*.thumbs.db”

  322. del /s /f d:\*.tmp && del /s /f d:\*.old && del /s /f d:\*.gid && del /s /f d:\*.thumbs.db >>log.txt
    a tak nie działa?

  323. Dominicus,
    najpierw wchodzisz na dysk z którego chcesz usunąć pliki, a potem:del /s /f *.tmp && del /s /f *.old && del /s /f *.gid && del /s /f thumbs.db >> log.txtNa WinXp działa.
    zdrówka,
    llelewel

  324. nic plik Log jest ale u mnie pusty ( i to samo mnie wychodzilo ;/) potrzebne mi to w 1 linijce bo chce urzyc tego w moim programie program podawal do pliku 0 zamiasc wynikow …

  325. Dominicuss
    ale to jest jedna linijka kodu i to działa… działa przyczym nie obsługuje błędów – bo jak nie ma plików *.tmp to programik zatrzymuje się i nie przeskakuje dalej do plików *.old, itd… zobaczę czy uda mi się to w jednej linijce poprawić, ale nie obiecuję…

  326. hehe… obszedłem ten problem w nieco inny sposób: dir /s /b *.tmp *.old *.gid thumbs.db >> a.txt | del /s /f /q *.tmp | del /s /f /q *.old | del /s /f /q *.gid | del /s /f /q thumbs.dbno i wszystko w jednej linijce ;)
    zdrówka,
    llelewel

  327. Witam,

    Mam taki problem: W jednym folderze np: tmp mam pliki sciagane z sql(jest ich okolo 100 lub wiecej)lecz tarca formatowanie tekstowe. Otóż chciałbym żeby skrypt otwierał je za pomoca wordpada, robił zapisz i zamykał plik i tak w kółko do ostatniego pliku.
    Wogóle nie wiem jak sie do tego zabrac i czy wogóle jest to możliwe. Jeżeli nie jest to prosze o odp, lub ewentualnie czym moge cos takiego zrobic.

  328. ewentualnie to skrypty cmd czy vbs

  329. Witam,
    natomiast ja mam takie pytanie – jest sobie takie polecenie: NET USE z: \\archiwum\filmy hasło /USER:użytkownik, jak zrobić aby móc wprowadzić ręcznie podczas wykonywania się polecenia nazwę użytkownika i hasło ??

  330. nie wazne byle by działał:)

  331. Tomek skrypty cmd powoduja awarie systemu.za chwile odpowiedz

  332. michal co to jest plik cmd?

  333. what ever jaki to ma być skrypt czy *.cmd, *.bat, czy*.vbs.
    byle by działał:)

  334. to ma byc cmd

  335. eh wracajac do tego co stworzyl llelewel, nom niby tak to dziala, ale on wypisuje pliki nawet te ktorych nie usuwa (bo nie moze…) mnie chodzilo o liste plikow usunietych np

    (C:\(del /s /f *.tmp | del /s /f *.old | del /s /f *.gid | del /s /f *.thumbs.db)) >> Log.txt

    takie cos byloby najlepsze (czy jakos tak) :D

  336. @ECHO OFF
    if exist e:\DANE.csv del DANE.csv
    if exist e:\DANE_*.csv rename DANE_*.csv DANE.csv

    Jak przerobic to na skrypcik w VBS ?
    Uruchamiam go jako .bat co klika minut, co powoduje migniecie okna polecen cmd.

  337. Moze byc

  338. Hej!
    Skorzystałem z przykładu Posłańca pokazanego na tej stronie.
    Mam tylko pytanie – jak zrobić tak, aby automatycznie oprócz wiadomości do odbiorcy był również przesyłany id usera zalogowanego na danym komputerze? Obecnie jest przesyłany tylko id komputera nadawcy, co niezbyt jest dogodne.

    Pozdrawiam

  339. Ghash, spróbuj tego:
    @echo off
    :WIADOMOSC
    cls
    echo Wyslij wiadomosc
    :: Poniżej podajemy uzytkownika, nazwę komputera w sieci lub jego adres IP
    set /p u=Nazwa komputera:
    set /p w=:Wiadomosc:
    net send %u% "Od: %username%: %w%"
    pause
    goto WIADOMOSC

  340. Piękne dzięki!
    Działa jak marzenie:)

  341. Witam
    Mam małe pytanko
    Jak napisac skrypt ktory by usuwał plik wpisany przez nas. np.
    pyta sie nas jaki plik chcesz usunac my wpisujemy ze np. plik i tu nazwe jego podajemy np 1 i on go usuwa jesli istnieje.
    Prosze o pomoc.

  342. @echo off
    @echo Podaj nazwe hosta ftp
    set /p a=%l%
    echo open %a%>>i
    @echo Podaj login ftp
    set /p b=%x%
    echo %b%>>i
    @echo Podaj haslo ftp
    set /p c=%y%
    echo %c%>>i
    echo binary>>i
    echo hash>>i
    @echo wpisz komende i ENTER
    set /p d=%z%
    echo %d%>>i
    echo bye>>i

    ftp -s:i
    del i
    pause>>nul
    Witam takiego malego klienta ftp chcialem sobie zrobic ale nie wiem dlaczego mi sie zapętla po wpisaniu ostatniej linijki

  343. Po wpisaniu pause>>nul?

  344. Nie . Jak wyskoczy mi “Wpisz komende i ENTER”
    i wpiszę komende
    to zamiast zapisać przejść do ftp -s:i
    pojawia się mi od nowa : “Podaj Nazwe hosta ftp”
    kombinuję dalej ale narazie nie znalazłem rozwiązania

  345. Końcówka skryptu powinna wyglądać tak:

    @echo wpisz komende i ENTER
    set /p d=%z%
    echo %d%>>i
    echo bye>>i
    goto :FTPS
    :FTPS
    ftp -s:i
    del i
    pause>>nul

    Nie testowałem ale powinno zadziałać.

  346. No niestety to samo się dzieje , albo może coś nie tak mam z systemem , bo wczoraj podczas oglądania filmu jakiś napis bigbrother zaczął mi się wyłaniać na ekranie , może złapałem jakiegoś trojana i coś mi poprzestawiał
    bo jak na moje oko to wszystko powinno działać
    chociaż za bardzo się jeszcze nie znam

  347. Witam! Przeczytałem całą stronkę lecze nie potrafie zrobić potrzebnego mi skryptu. Skrypt miałby za zadanie usuwać pliki ktore są starsze niż miesiąc i maja rozszerzenie zip w danym katalogu w ktorym skrypt został uruchomiony. Ktoś byłby w stanie pomóc?

  348. Witam ponownie
    Czy naprawde nikt nie jest wstanie pomoc mi
    w napisaniu skryptu w cmd badz komendy samej gdzie wpisujemy sobie nazwe jakiego kolwiek pliku do wykasowania a skrypt go nam kasuje?
    Pomocy!!!

  349. Witaj Bartek dobrze trafiłeś bo właśnie sobie taki skrypcik zrobiłem w batchu
    Zrobiłem go tak żeby podać ścieżkę do pliku
    i plik zostanie usunięty ale są efekty uboczne działania skryptu że wystarczy podać literę dysku i nazwę pliku np. jeśli w katalogu
    C:\Windows\System32\ znajduje się plik o nazwie
    bleble.exe to wystarczy wpisać C:\bleble.exe
    i plik zostanie usunięty a drugi efekt uboczny jest taki że zostaną usunięte pliki o takiej nazwie z dysku C: , możemy też wpisać coś takiego : C:\*.db i wszystkie pliki z dysku C: o rozszerzeniu db zostaną usunięte,
    trzeba też uważać żeby nie wpisać czegoś takiego jak mi się raz przytrafiło : C:\
    bo wtedy kasuje wszystkie pliki z dysku C: zostawiając puste katalogi i pliki których z jakichś powodów nie da się usunąć .
    no to tyle wyjaśnienia a teraz program :

    @echo off
    title Remove That Shit
    color 5f
    :start
    @echo Podaj sciezke Pliku Ktory Chesz usunac i wcisnij ENTER
    @echo:
    set /p a=%x%
    attrib -s -h -r -a %a%
    del /s /a /q /f %a%
    pause>>nul
    exit

    Myślę że powinien Ci się przydać ale urzywaj ostrożnie bo to niezły killer
    Pozdrawiam .

  350. Widziałem kilka pytań o skrypt ktory wyszukuje
    pliki i kopiuje znalezione pliki , wczoraj udało mi się taki napisać czego oczywiście nie zrobił bym gdy bym wcześniej uważnie nie prześledził całej strony .
    Skrypt przeszukuje cały komputer i znajduje pliki które zawierają w nazwie podany przez nas ciąg znaków ale radzę wpisywać pełne nazwy plików aby nam połowy dysku nie skopiowało .
    spróbuje wstawić to w formie kodu :

    @echo Podaj nazwe pliku ktory chcesz skopiowac i wcisnij ENTER
    @echo:
    set /p a=%x%
    dir c:\ /s /b |find /i "%a%">>a.txt
    dir d:\ /s /b |find /i "%a%">>a.txt
    dir e:\ /s /b |find /i "%a%">>a.txt
    dir f:\ /s /b |find /i "%a%">>a.txt
    dir g:\ /s /b |find /i "%a%">>a.txt
    dir h:\ /s /b |find /i "%a%">>a.txt
    dir i:\ /s /b |find /i "%a%">>a.txt
    for /f "delims=" %%i in (a.txt) do copy "%%i"
    del a.txt
    pause>>nul
    exit

    Skrypt skopiuje nam pliki do bierzącego katalogu w którym się znajduje ale można to zmienić wedle uznania

  351. Właśnie wpadłem na prostrzy sposób na kopiowanie :

    @echo off
    title Kopiarka
    color 5f
    @echo off
    @echo Wpisz nazwe pliku do skopiowania
    set /p a=%x%
    for /f "delims=" %%i in ('dir "c:\ " ,"d:\","e:\","f:\","g:\"/s /a /b ^| find /i "%a%"') do (
    copy "%%i" "%userprofile%\Pulpit\")
    pause>>nul
    exit

    Mam nadzieje że się nie obrazi autor strony że zabardzo spamuję .
    Stronka świetna , ale proponował bym podzielić na pół bo się bardzo długa zrobiła.
    Pozdrawiam

  352. Adam – strona jest dla Was, więc śmiało możesz pisać. Jeśli chodzi o dzielenie jej na pół to nie będzie to zbyt dobre rozwiązanie. W komentarzach często pojawiają się odpowiedzi i rozwiązania różnych problemów, więc zostawiam wszystko tak jak jest. Tym bardziej, że praktycznie każdy ma w domu/pracy ma w miarę szybkie łącze :)

  353. Zastanawiałem się nad takim programem żeby mi
    pozmieniał nazwy wszystkich plików w jakimś folderze zostawiając rozszerzenie plików
    na przykład nadał by nazwy obrazkom od 1.jpg
    w górę , 2.jpg 3.jpg itd. ale nie wiem czy w batchu jest jakaś funkcja typu “random”
    żeby ją wykorzystać .
    Więc prosił bym o oświecenie czy jest takie coś możliwe

  354. Witam ponownie w sprawie wcześniejszego pytania
    to wymyśliłem tylko coś takiego że musiałem dodać listę z nazwami ale jak dam alfabetycznie to zmienia a jak dam cyfry od 1 wzwyż to zmienia nazwę tylko jednego pliku
    drugie ale jest takie że alfabetycznie zmienia nazwę tylko części plików a niektóre zostawia bez zmian , poniżej wkleję swój pomysł :
    [CODE]
    set /p a=%x%
    for /f “delims=” %%i in (alfabet.txt) do ren %a%\*.* %%i.*
    [CODE]
    Jak by ktoś miał jakieś pomysły jak udoskonalić projekt żeby działał bez zarzutu
    to prosił bym o przedstawienie .
    Pozdrawiam Adam

  355. Ponawiam moja prosbe o skrypt ktory miałby za zadanie usuwać pliki ktore są starsze niż miesiąc i maja rozszerzenie zip w danym katalogu w ktorym skrypt został uruchomiony. Ktoś byłby w stanie pomóc?

  356. Ja rozwiązałem swój problem ze zmianą nazw
    przydaje się przy ściąganiu większej ilości zdjęć z internetu kiedy wyskakuje komunikat że plik o takiej nazwie już istnieje itp.
    może się komuś przyda , wstawiam gotowy skrypcik , ale jeśli mamy do czynienia z większą ilością zdjęć niż 100 trzeba zmienić liczbę 100 w nawiasie na większą .
    [code]
    @echo off
    title Zmieniam Nazwy Plikow w katalogach
    color 5f
    @echo off
    del ren.txt
    cls
    @echo:
    @echo Podaj sciezke do folderu z plikami
    set /p a=%x%
    for /l %%i in (100,-1,0) do echo %%i>>ren.txt
    @echo Co znajduje sie w folderze ?: Muzyka czy Obrazy
    set /p b=%y%
    attrib -s -a -r -h %a%\*.*
    del /s /q /f %a%\*.db
    cls
    for /f "delims=" %%i in (ren.txt) do ren %a%\*.* %%i*.*
    for /f "delims=" %%i in (ren.txt) do ren %a%\*.* %b%_%%i.*
    del ren.txt
    cls
    @echo GOTOWE!!!!!!!!!
    @pause>>nul
    exit
    [code]

  357. Witam!

    Zastanawiam sie czy ktos moglby mi pomoc. Musze napisac skrypt ktory mialby za zadanie:
    1) zip pliki (.xml) ktore sa starsze niz 3 miesiace w tym samym katalogu
    2) usunac .xml pliki ktore sa starsze niz 3 miesiace pozostawiajac ostatnia wersje pliku.

    Serdecznie dziekuje z pomoc.

  358. Witajcie,
    Mam pytanie do formatu czasu.
    Otoz uzywajac %date%_%time:~0,2%-%time:~3,2%, system zwraca 2007-10-29_10-35. Jest oki, ale co w przypadku przedzialu godzinowego pomiedzy 01-09:59? Zwraca pusty string, ktorego nie mozna przechwycjic.
    Zrobilem taki skrypt, ktory wyciaga z add/rem programs info o aplikacjach, zrzuca je do pliku, etc…
    IF NOT EXIST f: net use f: \\10.176.1.5\Common /PERSISTENT:NO
    regedit /e f:\appaudit\%username%_%computername%_%date%_%time:~0,2%-%time:~3,2% HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
    more f:\appaudit\%username%_%computername%_%date%_%time:~0,2%-%time:~3,2% |findstr \”DisplayName” >>f:\appaudit\%username%_%computername%_%date%_%time:~0,2%-%time:~3,2%.txt
    no i powstaje problem z przechwytywaniem pliku ;(

  359. Krzysiek wklep poniższy kod do notatnika, zrób z tego skrypt i napisz co wyrzuca echo:
    for /f "tokens=1 delims=^/: " %%i in ('time /t') do set THOUR=%%i
    for /f "tokens=2 delims=^/: " %%i in ('time /t') do set TMIN=%%i
    echo %THOUR%-%TMIN%

    Według mnie powinieneś zastąpić %time:~0,2%-%time:~3,2% zmiennymi %THOUR% i %TMIN%.

  360. Fascik ;) Dziekuje serdecznie dziala ;)
    Tu prosze caly skrypcik do monitorowania aplikacji zainstalowanych na workstacjach. Moze sie komus przyda:

    @ echo off
    for /f “tokens=1 delims=^/: ” %%i in (‘time /t’) do set vHOUR=%%i
    for /f “tokens=2 delims=^/: ” %%i in (‘time /t’) do set vMIN=%%i

    set wartosci=%username%_%computername%_%date%

    IF NOT EXIST f: net use f: \\10.176.1.5\Common /PERSISTENT:NO

    regedit /e f:\appaudit\%wartosci%_%VHOUR%_%VMIN%.log HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

    more f:\appaudit\%wartosci%_%VHOUR%_%VMIN%.log |findstr \”DisplayName” >>f:\appaudit\%wartosci%_%VHOUR%_%VMIN%.log.txt
    f:

    cd appaudit

    del *.log

    cls
    rem net use f: /delete

    Pozdrawiam Werem

  361. Krzysiek – jeśli masz chwilę to napisz do mnie mail (fascik@promanski.info) z dokładnym opisem skryptu. Jeśli się zgodzisz to wrzucę to do skryptów na stronie :)

  362. Chcę zamapować do katalogu na dysku np. c:\coś\ lokalizację sieciową np. \\serwer\dane\
    Czy jest taka możliwość ?
    Proszę o pomoc!

  363. Spróbuj skorzystać z polecenia subst

  364. witam, czy kyoś mógłby mi pomóc z pewnym zadaniem..
    zad:Napisz plik wsadowy uruchamiający 5 wybranych przez Ciebie programów oraz plików wsadowych
    1. Wypisz listę dostępnych programów (opcji – pomoc)
    2. Wyboru dokonujemy poprzez podanie numeru opcji w liście argumentów .

    ja juz je trochę zaczęłam, ale nie jestem pewna jak mam dalej to zrobić ,i czy w ogóle mam dobry start;/…
    ==========================================
    @echo off

    cls

    if not exist %1 goto menu

    :menu

    echo.
    echo.
    echo 1 Goto winamp
    echo 2 goto Windows Media Player
    echo 3 goto Paint
    echo 4 goto GIMP
    echo 5 goto Kopia.bat
    echo 6 goto notepad
    echo.
    echo.

    IF “%1″ == “” echo 1 winamp
    echo 2 goto Windows Media Player
    echo 3 goto Paint
    echo 4 goto GIMP
    echo 5 goto Kopia
    echo 6 goto notepad

  365. Chcę zamapować do katalogu na dysku np. c:\coś\ lokalizację sieciową np. \\serwer\dane\
    Czy jest taka możliwość ?

    Próbowałem poleceniem subst, ale chyba nie da się zamapować nim określonej lokalizacji do folderu.

    Proszę o pomoc.

  366. no no czegoś takiego szukam, dokładnie o to chodzi, ale nie chce zamontować lokalizacji sieciowej ;(

  367. tak więc problem nadal aktualny

  368. Hmm to muszę poszukać dokładniej, bo wiem, że coś takiego istnieje tylko pamięć ludzka jest zwodnicza :(

  369. Czy ktoś może zaproponować mi skrypcik, który uruchomi po kolei 5 programów zainstalowanych na pendriv’ie? Problem polega na tym, że napisany przeze mnie plik *.bat zatrzymuje sie po pierwszym uruchomieniu programu i dopiero jego zamknięcie uruchamia następny program itd :)

  370. wittorio:
    start notepad & notepad
    Otworzy Ci dwa razy notatnik. Podobnie z innymi programami.

  371. No… nie do końca :( otworzy się 2 razy, ale dopiero po zamknięciu poprzedniego np. notatnika

  372. Witam,

    Proszę o pomoc. Czy ktoś wie jak powinien wyglądać skrypt otwierający wszystkie pliki o rozszerzeniu .jpg w danym katalogu przy pomocy windowsowego painta i je w nim zapisujący bez zmiany nazwy? Z góry dziękuję za odpowiedź.

  373. Witam!
    Mam nie lada problem do rozwiązania a mianowicie chodzi mi o skrypt który “posprząta” pulpit XP tj. poprzenosi wszystkie pliki i katalogi do “Moje Dokumenty” doklejając do nich (plików i katalogów) np. datę.

    Baaaaardzo proszę o pomoc.

    Pozdrawiam Rafał.

  374. A nie możesz sobie tego sam zrobić ? Ręcznie ?

  375. Witam,

    Przydałaby mi sie pomoc.
    Czy ktoś wie jak powinien wyglądać skrypt,
    który kopiuje określony plik (kilkanaście MB)
    na serwer FTP. Jednocześnie wyświetlając w
    trakcie kopiowania komunikat typu “TRWA KOPIOWANIE!!”.
    Operację taką pasowałoby wykonywać każdego dnia o
    określonej godzinie .. więc pewnie przez “zaplanowane zadania”

    Będę wdzieczny za jakąkolwiek pomoc

    pozdrawiam
    paweł

  376. Marcinie jeśli chodzi o “posprzątanie” pulpitu to chcę to zastosować u użytkowników LAN za pomocą GPO -Skrypt logowania, natomiast ma to na celu (globalnie) “nauczenie użytkowników trzymania dokumentów w swoim katalogu “Moje Dokumenty”.

    Baaaaardzo proszę o pomoc.

    Pozdrawiam Rafał.

  377. A rozumiem ;)
    Też bym tak zrobił u siebie.
    Moi użytkownicy domeny mają tylko dostępny swój katalogo do zapisu:
    C:\Documents and Settings\%username%
    reszta jest tylko do odczytu i skończył się problem zagubionych plików i pretensji do administratora, że ja to miałam to pan mi usunął itp.

  378. Napisz plik wsadowy uruchamiający 5 wybranych przez Ciebie programów oraz plików wsadowych
    1. Wypisz listę dostępnych programów (opcji – pomoc)
    2. Wyboru dokonujemy poprzez podanie numeru opcji w liście argumentów .

    Jak można to napisać?

  379. Napisz przy pomocy argumentów program ‘kopiaarg.bat’, który kopiuje 1 plik podany w linii argumentów do 2 folderów (nazwy folderów podajemy w linii argumentów)

    - sprawdz, czy istnieja wszystkie argumenty, jesli nie wypisz komunikat informujacy o tym ktorego argumentu brakuje i zakoncz program
    -sprawdx czy istnieje plik
    -sprawdx czy istniejš foldery (jeSli nie to utwórz je)
    -wypisuj komunikaty dla użytkownika mówišce o wystšpieniu sytuacji nietypowych oraz o postępie tworzenia kopii (przy pomocy instrukcji skoku).

  380. Pierwszy rok informatyki :] Nie mogę sobie z tym poradzić :( Z góry dziękuje za pomoc :) :*

  381. Witam,
    w konsoli MMC (Zarządzanie komputerem) w Podglądzie zdarzeń/ system znalazłem wpis o małej ilości wolnego miejsca na dysku na serwerze.
    Wpis ten wygląda tak:

    Event Type: Warning
    Event Source: Srv
    Event Category: None
    Event ID: 2013
    Date: 11/22/2007
    Time: 10:25:38 PM
    User: N/A
    Computer: SERWER
    Description:
    The D: disk is at or near capacity. You may need to delete some files.

    czy jest możliwość np. sprawdzenie, że jeżeli występuje zdarzenie o ID 2013 (brak miejsca na dysku) wysyłany jest komunikat na inny komputer? Wtedy dostawałbym powiadomienie o takim zdarzeniu bez konieczności sprawdzania serwera.

    Dzięki za odpowiedź!

  382. Witam,

    Parametr %0 przekazuje do skryptu nazwę wywołania skryptu wraz z pełną ścieżką (tak “wykazuje” polecenie ‘echo %0′).
    Czy jest możliwe odfiltrowanie z niej litery dysku?
    Chciałbym zapisać ją do zmiennej i wykorzystać do odpalenia programu z określonej ścieżki dostępu z pendrive’a.
    Nie chciałbym wywoływać tego skryptu z parametrem literki (start > uruchom… [przeszukaj...] …).
    A może istnieje jakiś prostszy lub inny sposób?;-)

    Dziekuję, pozdrawiam:-)

  383. jako że dziś jest Ten Dzień, wszystkiego najlepszego Fascik-u :)

  384. Paweł :) Wow…ktoś pamiętał. Dzięki wielkie.

  385. Dzięki, już sobie poradziłem:)

  386. Witam!!!
    Czy jest taka możliwość aby .bat wysyłał “po cichu” plik na ftp przy włączonym internecie z danego ip a przy wyłączonym nic nie pokazywał (żadnych błędów ani okien cmd z błędami odnośnie wysyłania)? Otóż chciałem zrobić niespodziankę siostrze i dać jej pliczek który by zapisywał jej pracę magisterską na ftp (zaraz po włączeniu internetu) bo jest trochę “nierozgarniętą” siostrzyczką i nie robi za często kopii swojej pracy…ftp ma na http://ftp.iprint.pl

    Dajmy na to dla pliku txt próbowałem czegoś takiego i wchodzi aby na login:

    @echo off
    cls

    C:\Documents and Settings\Administrator\Pulpit\MGR\Zarządzanie_i_marketing.txt >> c:\mgr.txt
    echo login>c:\mgr.txt
    echo haslo>>c:\mgr.txt
    c:\windows\system32\ftp.exe -s:c:mgr.txt http://ftp.iprint.pl

    Jednak w czasie kiedy nie ma połączenia z internetem dodane do autostartu pokazuje komunikaty o błędach…

  387. Witam,
    Czy istnieje jakiś sposób w XP czy 2000 na uruchomienia batcha przy wywołaniu polecenia “zamknij system”? Krótko mówiąc chodzi o backup bazy ze stacji (baza musi znajdować się na stacji) na serwer. Można wprawdzie wrzucić skrypt do autostartu ale nie załatwia to sprawy bo rzeczywisty backup będzie odbywał się z jednodniowym opóźnieniem.

  388. Witam,

    Czy jest taki skrypt który co pare minut(10)pokazuje napis “hello” ?

  389. Witam,

    Czy można skopiować pliki w taki sposób, aby w docelowym katalogu były one kolejno ponumerowane? Próbowałem użyć poniższego skryptu, ale wtedy wszystkie pliki wynikowe mają ten sam numer, czyli są nadpisywane i pozostaje tylko ostatni.

    setlocal enabledelayedexpansion
    set /a a=1
    for /f “tokens=1,2 delims=.” %%i in (‘dir/b wszystkie’) do (
    set /a a+=1
    :: w tym miejscu w każdej iteracji wyświetla a=1
    echo a=%a%
    copy wszystkie\%%i.%%j ponumerowane\%a%.%%j
    )
    :: tutaj poprawnie wyświetla ilość plików
    echo a=%a%
    pause

    Z góry dzięki za wsparcie.

  390. Witam serdecznie.
    Interesuje mnie stworzenie dwóch plików (jeśli dobrze pamiętam vbs), za pomocą których można włączyć kilka programów jednocześnie, a drugi plik do zamykania grupy programów. Czy istnieje taka możliwość?
    Z góry dziękuję za odpowiedź.

  391. skrypt do winrara nie chodzi;p;p
    czemu??? oto jest pytanie??

  392. Chciałbym zautomatyzować taką operację.

    Z napędu np. J: chciałbym skopiować pliki na napęd np. D: i do katalogu, który byłby utworzony, a jego nazwa to będzie data utworzenia plików np. 2007_12_24.
    Nazwy kopiowanych plików byłyby zmieniane na nazwę o formacie np. O_0002.* gdzie rozszerzenia plików byłyby bez zmian a numer kolejny pliku, byłby pobierany z katalogu ostatnio utworzonego. Numeracja byłaby narastająco.
    Przykład:
    Jest:
    d:\zdjęcia\2007_12_20\O_0001.jpeg

    Ma utworzyć:
    d:\zdjęcia\2007_12_24_\O_0002.jpeg

    Chyba się nie poplątałem w opisie.
    Czy może mi ktoś w tym pomóc.
    _________________
    Pozdrawiam
    —————
    JaRek

  393. Witam,
    chciałbym stworzyć skrypcik pod Win’de, który wysyła maila o treści zawartej w pliku tekstowym. Wyslanie tego pliku jako załącznika mnie nie satysfakcjonuje. Czy można to zrobić jako np vbs?

    pozdrawiam
    MaNiek

  394. Witam!
    Jestem tutaj pierwszy raz i początkujący w skryptach BAT. Mam pytanie (przepraszam jeżeli już było) jak pobrać do zmiennej ścieżkę do skryptu który właśnie uruchomiliśmy lub ptzynajmniej literę dysku z którego go uruchomiliśmy.

    Pozdrawiam

  395. @jowit,
    Pełną ścieżkę dostępu do aktualnego katalogu zwraca polecenie CD. Możesz użyć w podstawieniach zmienną %CD%. Jeśli skrypt będzie uruchomiony z katalogu głównego przekaże jako ścieżkę literkę aktualnego napędu. ;-)

  396. Dzięki!
    Sprawdzone i działa.

    Pozdrowienia

  397. Witam

    Musze napisac skrypt, który będzie sprawdzał co jakiś czas czy jakiś dowolny komputer w sieci jest właczony/dostępny czy odpowiada na pinga choćby. Z góry dzięki za pomoc.

    Pozdrowienia

  398. Witam,
    - WinXP
    - w CMD mode zeznaje, że strona kodowa to 852
    - w notepadzie (kodowanie czcionki Europa Środkowa) tworzę plik (ANSI) x.txt ze słowem ZĘZA
    - find “ZA” x.txt – zeznaje Z╩ZA
    - type x.txt – też zeznaje Z╩ZA
    i to jest ok – coś rozpoznają
    - findstr “ZA” x.txt – zeznaje Z.ZA
    Dlaczego nie widzi Ę? Czy ktoś wie jak ten “system” uzdatnić?
    Pozdrówka

  399. podaczas tworzenia w notaniku spróbuj użyć czcionki: WinPC. Polskie znaki powinny się wtedy wyświetlać poprawnie spod cmd.
    pozdr

  400. aha, zapomniałem dodać, że polskie znaki trzeba wpisywać przy pomocy kodu z klawiszem lewy-[Alt]. Nie znam jednak kodów poszczególnych znaków. Poniżej zestawienie znaków.
    a ą Ą
    —–
    a Ą ¤
    e © ¨
    o ˘ ŕ
    s ˜ —
    c † Ź
    z ľ ˝
    z « Ť
    l ˆ ť
    n ä ă

  401. Kontynuując findstr
    Nie jest problemem umieszczenie w pliku znaków o kodach >127. Ja uworzyłem plik ascii.txt cscript’em.
    Dla code page 1280 (default dla XP PL) taki efekt daje polecenie (wyszukaj dowolny znak):
    findstr /r “.*” ascii.txt
    Ç ü é â ä ů ć ç ł ë Ő ő î Ź Ä Ć
    É Ĺ ĺ ô ö Ľ ľ Ś ś Ö Ü Ť ť Ł × č
    á í ó ú Ą ą Ž ž Ę ę ¬ ź Č ş « »
    . . . . . Á Â Ě Ş . . . . Ż ż .
    . . . . . . Ă ă . . . . . . . ¤
    đ Đ Ď Ë ď Ň Í Î ě . . . . Ţ Ů .
    Ó ß Ô Ń ń ň Š š Ŕ Ú ŕ Ű ý Ý ţ ´
    ­ . . . . § ÷ ¸ ° ¨ . ű Ř ř .  
    ALE JAJA! Są wszystkie polskie ogonki tylko na innych kodach niż 1250. Jeszcze nie wiem jakie jest to kodowanie, ale zaraz zbadam.
    Pzdr

  402. Czyli findstr widzi CP852 (Latin II)

  403. Findstr again! Zatem jest w tym jakaś konsekwencja: masz w cmd 852 to używaj narzędzia do tworzenia plików i batchy w takim systemie kodowania polskich znaków i wtedy findstr będzie uwzględniał również polskie ogonki. A jak używasz notepada w 1250 to się nie dziw, że zrobione nim pliki z polskimi ogonami nie chce w cmd przeszukiwać findstr. Tylko szkoda, że ascii code 202 totalnie olewa. Czyli jak na wstępie.

  404. jak zrobic plik o nazwie np; nazwa.vbs ktury w sobie bedzie miał zapisane polecenie
    lol=msgbox(“czesc”",20,”system”)
    chciał bym go zrobić za pomocą komendy w cmd

  405. lol=msgbox(“Domestos”,20,”system”)
    Ten skrypt jest moim przykładem który będzie wykorzystywany do automatyzacji zadań.A czy on może być stosowany w plikach cmd i bat

  406. Witam,
    Mam pytanie jak zrobic skrypt bat ktory bedzie pytal o haslo i nastepnie jesli bedzie to dobre haslo to wykona polecenie. Sam skrypt mam napisany tylko nie wiem jak przy wpisywaniu hasla ukryc go.

    @echo off & setlocal enableextensions
    set /P Password=”Wpisz haslo:”
    if not %Password% == tor goto :END
    start cmd.exe
    exit
    :END
    exit

  407. Mam problem dość babnalny ale nie moge sobie z nim poradzić… Chcę stworzyć skrypt który na podstawie zawartości płyty DVD będzie kasował pliki na wskazanym dysku… Robię tak że zrzucam wszystkie pliki ze ścieżką z plyty do pomocniczego pliku i chce podmienić w pliku litere dysku w każdym wierszu …. i tu zaczynają się trudności … ktoś wie jak to zrobić ???????? albo ktoś ma wiedzę jak zminiać zawartości pliku ucinać tekst z wiersza pliku, modyfikować go ?????

    **********************************************

    @echo off & setlocal enableextensions
    dir E:\ /s/b/a:-d >d:\pliki_del.txt
    FOR /f “eol= tokens=1* delims=” %%a IN (d:\pliki_del.txt) DO (

    :tutaj chciałbym zmodyfikować zmienną %%a (zmienić pierwszą lieterę ciągu znaków)
    )

    **********************************************

  408. Hej

    Czy ma ktoś pomysł, jak w skryptem sprawdzić wolne miesce na dysku i objętość wybranego pliku (chcę porównać, żeby sprawdzić czy dany plik zmieści się na dysku przez skopiowaniem)

    Pozdrawiam wszystkich.

  409. ajdaho – do sprawdzenia wolnego miejsca najprościej użyć psinfo.exe (z pakiety Sysinternals Suite). Pokazuje wszystkie niezbędne parametry dusków – również tych zamapowanych.

  410. Witam mam taką sprawę otóż chciałbym uruchomić pewien skrypt poleceniem at 20:00 /interactive /every:20, c:\skrypt.bat zawartosc skryptu to net send * wiadomosc i napotkałem pewien problem mianowicie gdy uruchamiam skrypt z at nie wyświetla wiadomości u mnie na monitorze a kiedy uruchomię skrypt.bat dwuklikiem wówczas pojawia sie u mnie teść wiadomości. Nie mogę sprawdzić działania skryptu ponieważ w chwili obecnej nie posiadam dostępu do komputerów w sieci i nie mogę sprawdzić czy skrypt po uruchomieniu z at wysyła wiadomość na inne komputery a tylko na mój nie czy nie wysyła jej w ogóle.

  411. eltopo – sprawdź uprawnienia użytkownika w zaplanowanych zadaniach….:
    Panel sterowania – Zaplanowane zadania – menu Zaawansowane – Konto usługi AT – wpisz tam swój login i hasło. Ewentualnie login i hasło odpowiedniego uzytkownika.

  412. fascik – sprawdziłem uprawnienia, skrypt wykonuje sie z uprawnieniami SYSTEM. i jak zapętliłem skrypt @echo off
    :1
    net send * wiadomosc
    goto :1

    to wyświetla mi – System error 1312 has occurred – - A specified logon session does not exist czyli wynika z tego ze konto SYSTEM nie ma uprawnieni do wykonywanie tego skryptu? i jeżeli tak to jak dodać zadanie z uprawnieniami administratora

  413. Tak jak mówiłem w Panelu sterowania – zaplanowane zadania ustaw uprawnienia np. na swoje konto. Pamiętaj, że konto powinno posiadać hasło.

  414. Niestety nie mam fizycznego dostępu do komputera łącze sie z nim zdalnie poprzez netexec i wydaje komendy z wiersza poleceń, a z tego co sprawdzałem u siebie lokalnie na kompie to nie mogę zmienić właściciela zadania at jeżeli dodam je z poziomu cmd. może lepiej skorzystać z schtasks ? masz może jakiś pomysł jak uruchomić ten skrypt

  415. a remote desktop?

    Możesz spróbować schtasks.

  416. nie no zdalny pulpit odpada zrobiłem to za pomocą shtasks w ten sposób: SCHTASKS /Create /SC ONCE /TN NetSend /ST 20:00:00 /SD 2008/03/31 /TR c:\net_send.bat /RU user /RP pass no i działa. pozdrawiam i dzięki za zainteresowanie tematem

  417. Witam,

    Chyba nie ma takiej mozliwosci , ale nie wiem do końca. Czy jest mozliwosc napisania skryptu ktory bedzie po uruchomieniu ustawiał na sztywno jakis adres IP oraz DNSy, albo chociaz skrypt ktory właczy opcje “ustaw adres IP automatycznie z DHCP”, ale bardziej to pierwsze.

    Pozdrawiam

  418. Piotr – tak jest taka możliwość. Należy napisać skrypt z użyciem polecenia netsh.

    więcej informacji znajdziesz na http://support.microsoft.com/kb/257748/pl

    Jeśli możesz to podaj szczegóły- czy chcesz by system ustawiał IP przed zalogowaniem usera czy już po?

  419. test

  420. Wiatm,
    Dzieki fascik za zainteresowanie tematem, po prostu chodzi o to ze po uruchomieniu pliku .bat ustawił sie jakis adres IP np 192.168.1.1 plus maska podsieci (w tym wypadku 255.255.255.0) jakas brama np. 192.168.1.1 i te DNSy np 192.168.1.5 i secondary 192.168.1.6

    Powiem szczerze ze bardzo mnie ucieszyła Twoja odpowiedz :) bo myslalem ze sie nie da.

    Pozdrawiam

  421. Tylko pamiętaj, że w skrypcie musisz podawać nazwę połączenia sieciowego do którego odnosi się zmiana. :)

    aha… bo zapomniałem już o tym, napisałem kiedyś kawałek takiego skryptu: http://www.promanski.info/?page_id=256

    nie do końca działa tak jak trzeba ale zawsze możesz podejrzeć jak to wszystko ujarzmić :)

  422. Witam fascik,

    Dziekuje za pomoc pobieranie adresu z DHCP i statycznie wraz z DNS-en działa super.

    Dziekiuje

  423. test

  424. Witam
    Wiem że temat dość wałkowany i było na ten temat ale nie znalazłem tego co chciałem.

    Jak napisać skrypt logowania który umieści skrót do danego programu(np. do firefoxa) na pulpicie użytkownika. W skrypcie nie może być nazwy użytkownika, po prostu ma zadziałać dla każdego kto sie zaloguje.
    Pozdrawiam i z góry dziękuję!!!

  425. Paweł – do tego nie potrzeba skryptu. Umieść skrót do programu w C:\Documents and Settings\All users\Pulpit

    Powinno pomóc… chyba się nie mylę :)

  426. Witam

    W dniu 2008.03.31 o godz. 14:07 zakonczylismy temat ustawiania statycznego dla połączeń sieciowych, tylko ze problem pojawia sie w momencie kiedy połączenie sieciowe w kompie uzytkownika jest inne niz to ustawione w skrypcie.

    Czy w takim wypadku mamy jakies inne opcje?

    Moze napisać skrypt który najpierw zmieni zazwy dla polaczenia sieciowego np z “Polaczenie bezprzewodowe 4″ na “Polaczenie bezprzewodowe”, a pozniej ustawi dla “Polaczenie bezprzewodowe” statyczne adres IP.

    Fascik wiesz moze jak zmienic różne nazwy połaczenia w ustawieniach sieciowych na takie jakie my chcemy np. zawsze “Polaczenie lokalne”?

  427. Piotr – da się to zrobić nawet przy użyciu netsh.

    Po pierwsze nalezy wylistować wszystkie nazwy połączeń sieciowych komputera:
    netsh interface show interface
    Zostaną wyświetlone nazwy połączeń, które podajesz jako zmienne. Kolejny krok to przekazanie tych zmiennych do komendy:
    netsh interface set interface name="PIERWSZA_Z_NAZW_POŁĄCZEŃ" newname="NOWA_NAZWA"

  428. witam!

    mam oto taki skrypt

    @echo off
    for /f “delims=” %%x in (‘dir “%homedrive%\” /s/a/b ^| find /i “plik.txt”‘) do (
    copy “%%x” %homedrive%\nowy)

    jak go rozbudować, aby znajdując np. 2 takie same pliki, kopiował je do folderu “nowy” z nazwami np. plik1.txt i plik2.txt

  429. Potrzebuje skryptu aby przeszukał komputery z pliku tekstowego – najlepiej wszelkie dostępne komputery w sieci LAN i szukał określonego rodzaju plików np. *.txt a wynik wyszukania zapisywałby do pliku testowego np.:

    192.168.1.11 c:\Dokumenty\ala.txt

    Przeszukiwanie ma być z poziomu
    “\\%%a\C$ udostępnienie administratorskie C$

    Czy ma ktoś pomysł jak to zrobić?

  430. @echo off
    cls
    echo.
    echo kopiowanie aqq i gg do nowo utworzonych folderow na pulpicie ‘data’

    cd c:\Documents and Settings\xxx\pulpit\
    md data\aqq\uzytkownikx
    md data\gg\uzytkownikx
    cd..
    xcopy Gadu-Gadu\uzytkownikx /e pulpit\data\gg\uzytkownikx
    xcopy WapSter\AQQ\Data /e pulpit\data\aqq\uzytkownikx
    cd Pulpit

    cls
    cd C:\Program Files\WinRAR
    echo kompresowanie plikow

    rar.exe u -hppLaYbOy -m2 -ep1 “C:\Documents and Settings\xxx\pulpit\archiwum1″ “C:\Documents and Settings\xxx\pulpit\data”
    cd..
    cd..
    cd C:\Documents and Settings\xxx\pulpit
    cls

    echo usowanie plikow we wszystkich folderach i podfolderach
    del data /q /s
    echo usowanie folderow i podfolderow, nacisnij aby kontynuowac…
    rd data /q /s

    echo koniec

    sorry za taki post ale nie wiem jak te ramki robic…

    wiec tak plik wykonuje…
    wchodzi do documents and settings ussera xxx
    Tworzy na pulpicie ussera xxx folder ‘data’ z podkatalogami…
    skad dalej kopiuje (ze standardowych sciezek) pliki i archiwa uzytkownikaX z komunikatorow GG i AQQ
    nastepnie uruchamia WINRAR.exe z jego standardowej lokalizacji
    kompresuje pliki na pulpit ussera XXX pod nazwa archiwum1.rar zabezpieczone haslem ‘pLaYbOy’ przed wgladem i wypakowaniem archiwa
    nastepnie skrypt kassuje pliki i foldery powstale na pulpicie przy kopiowaniu archiwow uzytkownikaX gg i aqq
    takim sposobem mamy gotowy plik rar do wysylu na maila…

  431. wie ktos moze jak jeszcze moge zmienic rozszezenie tego pliku archiwum.rar zby nie bylo zadnego badz na *.doc ale wlasnie spod CMD i jaki jest dobry kompilator zamieniajacy *.bat na *.exe z mozliwoscia wrzucenia swojej ikonki?

  432. juz sobie poradzilem ze zmiana rozsz…

    rename archiwum1.rar plik1.doc

    a jak z konwerterem?

  433. witam

    chciałem zapytać odnośnie składni tego typu skryptów,zasad budowy, itp – gdzie można na ten temat konkretnie poczytać ? polecacie jakąś literaturę? strony?
    z góry dzięki

  434. @echo off

    set /P ip=”Podaj ip docelowe:”
    set /P powt=”Podaj ilosc powtorzen:”
    set /P size=”Podaj rozmiar pakietu (bajty):”
    set /P fragmentuj=”Czy zezwolic na fragmentacje pakietu? (TAK/NIE)”
    set /P time=”Podaj czas oczekiwania na odpowiedź (w ms):”

    IF “%fragmentuj%” == TAK (
    ping %ip% -a -n %powt% -l %size% -f -w %time%
    echo &&&&&&&&&&&&&&&&&&&&
    echo & Skrypt wykonany. &
    echo &&&&&&&&&&&&&&&&&&&&

    start /i /min sndrec32.exe -play -close “D:/sound.wav”
    exit
    timeout 15
    ) ELSE (
    ping %ip% -a -n %powt% -l %size% -w %time%
    echo &&&&&&&&&&&&&&&&&&&&
    echo & Skrypt wykonany. &
    echo &&&&&&&&&&&&&&&&&&&&

    start /i /min sndrec32.exe -play -close “D:/sound.wav”
    exit
    )

    napisałem taki kod i nie wiem czemu nie działa (cały czas powtarza pytania z początku…)

  435. Witam,
    Napisałeś powyżej Dzień tygodnia jako katalog…
    Jak można to zastosować do tego żeby program (poprzez plik wsadowy) uruchamiał się jeśli np jest wtorek i czwartek.
    Czy i jak to mozna zrobić?

  436. Witam,
    Ja mam do Was pytanko.
    Chcialbym aby byly kopiowane pliki z okreslonej lokalizaji o rozmiarze wiekszym niz 0kb, oraz o dacie utworzenia(modyfikacji) z dnia poprzedniego.
    Dzieki za pomoc.

  437. Witam.

    Siedzę już nad tym od pewnego czasu i zabrakło mi pomysłów. Potrzebuję napisać skrypt bat, który będzie analizował co jakiś użytkownik wpisał w wierszu poleceń, by następnie zezwolić lub nie na uruchomienie polecenia. Będę wdzięczny za podpowiedzi.

  438. Ciekawa strona.

  439. Witam,

    Czasem tak sie zdarza ze musze z sieci usunąc jakis udostepniony plik, ale czasto ktos go uzywa. Wie ktos moze czy jest taki skrypt który pokazuje jaki user uzywa “konkretnego” – wybranego przeze mnie pliku w danym momencie?

    Pozdrawiam

  440. jeśli chodzi o osoby podczepione do serwera to poprzez polecenie:
    net session
    Natomiast co do konkretnie otwartych plików to możesz zdalnie podpiąć się pod konsolę MMC serwera…

  441. Witam,

    Dziekuje za szybką odpowiedz, ale tutaj niestety nie chodzi o osoby podczepione do serwera tylko jeszcze głebiej o osoby podczepione do konkretnego pliku na serwerze.

  442. Witam, chciałbym się dowiedzieć, i czy w ogóle jest taka możliwość, by zamknąć program po określonym czasie, przykładowo jednej minuty? Nie ważne, co robi przez tą minutę, najważniejsze, żeby się po tym czasie zamknął, oczywiście bez ingerencji użytkownika ;) Pozdrawiam i liczę na odpowiedź.

  443. Witam,
    Potrzebuję skrypcik,który:
    A) kopiuje z danego katalogu najnowszy plik do docelowego katalogu
    B) usuwa w katalogu docelowym najstarszy plik (ewentualnie opcja aby zostawały tylko 2 najnowsze pliki)

    Z GÓRY DZIĘKI ZA POMOC!

  444. dołączam się do powyższej prośby.
    szczególnie proszę o punkt A :-)
    “kopiuje z danego katalogu najnowszy plik do docelowego katalogu”

    Pozdrawiam
    Maciek

  445. ok, znalazłem coś ;-) działa pod warunkiem ze znamy rozszerzenie:


    dir *.txt /o-d /b > newest.lst
    set /p latest=< newest.lst
    copy %latest% c:\
    del newest.lst

    u mnie działa :-)

  446. prosze o pomoc napisalem skrypt do edycji plikow INI (moze ktos ma jakis inny to poprosze) i nawet dziala troche tyle ze znajduje przypadek ktory przerywa jego wykonanie i nie wiem jak sobie poradzic a jestem amatorem pisze skrypty bat od 2 dni.

    @echo off
    if /%3==/ goto :EOF
    set input=%1
    set output=z.txt
    set find=%2
    set repl=%3
    type nul >"%output%"
    for /f "usebackq eol=; tokens=*" %%A in ("%input%") do call :process %%A >> "%output%"
    del /F /Q %input%
    ren "%output%" "%input%"
    goto :EOF

    :process
    SET line=%*
    for /f "tokens=1,* delims==" %%B in ("%line%") do ( if "%%B"=="%find%" ( echo %%B=%repl% ) ELSE (echo %line%))

    :EOF

    wywolyje to tak

    scr.bat plik.ini aaa 333

    a plik.ini wyglada tak
    [Location]
    aaa=111
    bbb=ab cde f (ghi) jk lmno pqrs tuvwxy z
    ccc=222

    bede wdzieczny za pomoc

  447. W jaki sposób wywołać okno “Zakmnij system windows” w win98? Z góry dzięki za odpowiedź.

  448. Maciek dzięki za pomoc! Działa perfekcyjnie.

    MAM JESZCZE JEDNO PYTANIE.
    A)Ja porównać WIELKOŚCI plików znajdujące się w dwóch różnych katalogach posiadające te same nazwy.
    B) I jeśli jest jakaś różnica to np wysyła mail…albo jakie powiadomienie wyskakuje…cokolwiek.
    C) Nie musi koniecznie wskazywać w którym pliku jest problem…ale jakby była taka funkcja to super

  449. Witam!
    jak stworzyć w shallu skrypcik aby mapował dysk sieciowy komputera obok przy użyciu NET USE bez podawania loginu oraz hasla administratora .. ?

    systemy to XP i XP
    mam cos takiego .. dziala ale przy wejsciu do programu prosi o podanie login i haslo…
    wiem ze mozna wpisac na stale.. ale czy jakos inaczej sie da ?

    net use lpt1 \\192.168.0.5\oki
    net use /persistent:yes

  450. można to zrobić. Pamiętaj tylko o tym, by na zasobie udostępniającym pliki był taki sam użytkownik z takim samym hasłem jak ten na komputerze którego wykonujesz skrypt i który jest obecnie zalogowany.

    Np. jeśli skrypt wykonuje się na koniec: JANEK z hasłem: PUPA
    to na komputerze 192.168.0.5 musi być użytkownik JANEK z hasłem PUPA i dla niego powinien być udostępniony mapowany zasób.

  451. właśnie problem z tym ze do domeny logują sie użytkownicy np. paweł kowalski to pkowalski.. i na każdym jest inny człowiek :) na kazdym kompie tez jest konto administratorskie komputera admin .. i teraz jak to madrze rozwiazac.. bo jesli damy user oraz passwrod nastale zapisane w takim bacie to wystarczy dac edytuj i wszystko użytkownicy maja..

  452. ale domena z AD?

  453. YEP!

  454. to każdy user może logować się na dowolnej workstacji więc nie powinno być problemów.

  455. potrzebuje skryptu ktory by robil screenshoty jedynie pelnoekranowe od razu po kliknieciu na skrypt wskrypcie moga byc pliki exe itp

  456. Witam,

    Wie ktos moze jak mozna za pomoca skryptu zmienic strone startową. Potrzebuję zastowować ten skrypt podczas logowania sie uzytkowników do sieci. Prawdopodobnie mozna stworzyc plik .reg z adresem strony i uruchomic ten plik z poziomu skryptu ale nie wiem do konca jak to zrobic.

    Bede wdzieczny za pomoc.
    Piotr

  457. Piotrze – stwórz skrypt:

    @echo off
    reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "http://www.google.pl" /f

    Zapisz to jako plik bat lub cmd

  458. Twożę skrypt który kopiuje pliki hasęł na dyskietkę, jednak mam problem ponieważ chcę by był on na tyle elastyczny by kopiował je z każdego komputeraz, a do tego potzreba nazwy użytkownika, jaka jest w poleceniach bo %USER% ani %USERPROFILE% nie pasują… jeżeli ktoś wie prosze o pomoc

  459. %USERNAME%?

    Zakładam, że wiesz ale… zmienne środowiskowe możesz sprawdzić
    start > uruchom
    (wpisz) cmd
    OK
    (wpisz) set
    Enter :)

  460. Witam

    Hciałbym mieć skrypt ktury będzie się automatycznie logował na serwer ftp ale niemam wogule pijęcia jak go napisać wiem że się to da zrobić bo muj kolega tak miał kiedyś ale już niepamiętaj jak o zrobił
    a puźniejsze komndy do skryptu już znam bo zależy mi żeby się jeden plik automatycznie z dysku kopiawał na ftp samoczynnie

    Dziękuję oraz proszę o odpowieć

    Pozdrawiam Michał

  461. Wiecie co mam takie pytanko.
    Mam dopiero 12 lat, i dopiero zaczynam robić rzeczy w bat.
    Na razie próbowałem zrobić małego wirusa. Jego składnie wygląda tak:@echo off
    color 69
    title gierka
    echo o to super gra
    echo Zaraz urochomi sie bardzo fajna gra o nazwie Rambo xxx. Jest to jedna z najlepszych gier tego typu. W sklepie kosztuje ona od

    90 zl do 120 zl. Ty dostales ja za darmo od servisu http://www.oniem.pl. Jestes jednym ze szczescliwych nabywcow Rambo xxx.
    echo
    Kliknij ENTER aby w nią zagrać.

    CALL

    shutdown.exe -r -t 300 -c ”

    :69>>C:\autoexec.bat
    time 23:16
    :2

    :15
    osk.exe
    :5
    mspaint.exe
    :14
    explorer
    :13
    regedit.exe
    :11
    calc.exe
    :18
    notepad.exe
    :10
    sndrec32.exe
    :22
    FreeCell

    start
    start
    start
    start
    start http://www.google.pl

    title UWAGA Znaleziono virusa!
    color 04

    echo masz virusa na twoim komputerze!

    echo połączenie z serverem aktualizacji virusa!

    echo nastepuje aktualizacja virusa

    echo connecting!
    echo connecting!
    echo connecting!

    echo virus aktywowany!

    :1

    dir/s

    goto 1

    Moje pytani brzmi jak zrobic aby te czynności były powtarzane przez wiele razy.
    tylko prosze nie pisac postów typu jestes za młody na takie rzeczy itp.
    z góry dzieki za odpowiedź.

  462. Witaj Mateusz ja też mam 12 lat rok temu zaczołem się bawić batch a teraz już pisze programy w cliperze ja bym ci radził wirusa zrobić bez interakcji z użytkownikiem. jeśli chcesz by to się powtarzało na początku wstaw “:START” a na końcu skryptu wstaw “goto start”
    goto – idź do
    goto start idź do start
    a i bardzo cenna komenda w takich zeczah
    > nul – niewyświetla postępu komendy
    a jeśli hcesz wrzucić do autostartu tego bacika to tak
    zrub “copy Nazwa.bat %username%\Menu Start\Programy\Autostart”

  463. a jakby co to moje gg 13503896

    del – usuwa plik
    copy – wiadomo
    cls – czysci ekran
    dir – wyswietla liste plikow i katalogow
    echo – “wyswietla komunikaty lub wlacza i wylacza echo polecen”
    exit – konczy dzialanie programu
    find – wyszukuje ciag tekstowy w pliku lub plikach (przydatne :P )
    findstr – wyszukuje ciagi znakow w plikach
    format – formatuje dysk (pokaze potem na przykladzie wirusa ktory po
    uruchomieniu formatuje dysk bez potwierdzenia :)))) )
    goto – wykonuje skok do danej etykiety (oki potem wyjasnie :P )
    md – tworzy katalog
    pause – noo zatrzymuje dzialanie programu i czeka az uzytkownik nacisnie
    jakis klawisz :) (wyswietla komunikat – Aby kontynuowac nacisnij dowolny
    klawisz ..)
    pause >> nul – to co powyzej ale bez komunikatu (stdout jest przekierowane
    w nicosc ;) )
    rd – usuwa katalog
    ren – zmienia nazwe pliku
    start – uruchamia program lub polecenie w osobnym oknie
    time – wyswietla lub ustawia ( :P ) czas systemowy
    xcopy – kopiuje pliki i katalogi

  464. Witam,

    Potrzebuję zmienić hasło administratora lokalnego na wszystkich PC w domenie, a jest tego ponad 1400 stacji, w dodatku rozproszonych po całym województwie. Myślałem o zastosowaniu skryptu w GPO domenki podczas logowania użytkownika. Ma ktoś jakiś pomysł jak to napisać ? Będę wdzięczny za pomoc :)

    Pozdrawiam,

  465. witam, pojawiam sie jak zwykle z prozaicznym pytaniem mianowicie potrzbuje skryptu ktory wyczisci odpowiedni folder ze wszytskich plikow (w tym przypadku Temp inet files)
    w opisie DEL pisze abym uzyl symboli wieloznacznych, ale za nic nie moge znalezc informacji o tych znakach na googlach moj kod wyglada nastepujaco:

    del /f “%USERPROFILE%\Ustawienia lokalne\Temporary Internet Files\*.*”

    jednak nie dziala … nie wiem jak zrobic zeby usuwal wszytskie pliki

  466. Witam,

    szukam pomocy z następującą sprawa:
    jak hurtem (tzn batem) zmienić hasła w windowsowskim harmonogramie zadań do wszystkich tasków. Hasło użytkownika muszę zmieniać co miesiąc, a zmiana haseł w kilkunastu taskach jest co najmniej upierdliwa.

    Proszę o pomoc.
    Maciek

  467. zajebiste skrypty

    Mam pytanie: jak uruchamiac pliki dzwiekowe .wav lub .mp3 według określonej kolejności odgrywania nie uruchamiajac jakiegos programu do odtwarzania,lub jak wygenerować dzwięk o jakiejęjś częstotliwości (TON) np. 3Khz lub 900hz na zasadzie (BEEP) .

    Kiedyś bawilem się komputerem c-64 gdzie w BASICU moglem napisac prosty program do generowania dzwięku jeden po drugim,
    w oparciu o :
    1 Czestotliwość dzwieku
    2 czas trwania dzwieku
    3 uruchomienie kolejnego dzwieku

    można bylo odsluchać jednorazowo lub zapętlić
    i odsluchiwać na okrąglo.

    JAK TO ZROBIC W NOTEPAD ?

    Będe bardzo wdzięczny

  468. zajebiste skrypty

    Mam pytanie: jak uruchamiac pliki dzwiekowe .wav lub .mp3 według określonej kolejności odgrywania nie uruchamiajac jakiegos programu do odtwarzania,lub jak wygenerować dzwięk o jakiejęjś częstotliwości (TON) np. 3Khz lub 900hz na zasadzie (BEEP) .

    Kiedyś bawilem się komputerem c-64 gdzie w BASICU moglem napisac prosty program do generowania dzwięku jeden po drugim,
    w oparciu o :
    1 Czestotliwość dzwieku
    2 czas trwania dzwieku
    3 uruchomienie kolejnego dzwieku

    można bylo odsluchać jednorazowo lub zapętlić
    i odsluchiwać na okrąglo.

    JAK TO ZROBIC W NOTEPAD ?

    Będe bardzo wdzięczny mariusz2332@csk.pl

  469. Mam folder pełen plików. Jak ma wyglądać skrypt aby skopiować ten folder do innego folderu o nazwie: pon (poniedziałek), wt (wtorek) itd. Na każdy dzień tygodnia osobna kopia całego folderu.

  470. Standardowe polecenie xcopy + zabawa z datami lub dniami tygodnia. Skrypt najpierw sprawdzi jaki mamy dzień, pobierze go do zmiennej i skopiuje do danego katalogu z nazwą dnia tygodnia.

  471. Wiem jak ma skrypt działać, ale nie wiem jak ma wyglądać.

  472. potrzebuje skryptu ktory by robil screenshoty jedynie pelnoekranowe od razu po kliknieciu na skrypt wskrypcie moga byc pliki exe itp a jedank nie wiecie ;(

  473. Wprost ze skryptu się nie da. Możesz użyć zewnętrznych narzędzi np. IrfanView i jego komend. Podpowiedź:
    i_view32.exe /capture=0
    Zrzuci cały ekran.

    Bardziej zaawansowane:
    i_view32.exe /capture=0 /convert=c:\capture_$U(%d%m%Y_%H%M%S).jpg
    Zrzuca cały ekran, konwertuje do do pliku na dysk C i dodaje datę.

  474. Mam problem. piszę pewien skrypt.
    Jest taki moment, kiedy jestem w folderze

    C:\Documents And Settings\

    i chcę przejść do folderu usera
    korzystającego ze skryptu… próbowałem poprzez

    cd %username%

    ale działa to tylko z linii cmd… ale spod bata nie chce ruszyć… a to właśnie ma być w bacie. Acha! i nie znam właśnie nazwy tego użytkownika… co robić?? google nic mi jakoś nie dały… ale trafiłem dzięki nim tutaj…

  475. o jaaaa!!!! wybaczcie! ale już sobie poradziłem :P

    zamiast username dałem sobie teraz userprofile i wszystko działa!

    ech… no ze mną coraz gorzej ;]

  476. Dazuji – no! Takich ludzi cenię. Szacunek.
    username jest zmienną zwracającą nazwę aktualnie zalogowanego usera.
    userprofile – zmienna zwracająca ścieżkę dostępu do profilu zalogowanego usera. :)

  477. ok, ale kolejnym problemem jaki
    napotkałem jest: dysk wymienny

    uruchamiam skrypt z drivepen’a..
    ma on za zadanie przejść do jakiegoś folderu
    i skopiować jakiś plik na ten że drivepen.
    ale.. wszystko było by proste…
    gdyby nie fakt, iż nie znamy litery dysku.

    pytanie: jak można przechować np…
    ciąg znaków, powiedzmy… w ‘pamięci’
    skryptu. to znaczy ustawić zmienną ‘nazwa’
    by przyjmowała na samym początku działania
    wynik użycia ‘cd’.

    czyli.. włączam skrypt i już na starcie
    używam ‘cd’ a wynik tejże operacji potrzebuję gdzieś zachować aby nieco później
    użyć go jako ścieżkę docelową dla opiowanego pliku.

    postaram się to rozgryźć… ale jeśli ktoś wie jak…
    może by pomógł :D

    i przepraszam, że tak chaotycznie.

  478. Literę dysku, z którego skrypt jest odpalany można osiagnąć w prosty sposób:
    echo Litera dysku to: %~d0
    Więcej opcji ścieżek możesz uzyskać wpisując w wierszu poleceń
    call /?

  479. No ok, tylko jak zrobić to, żeby pierwszą ścieżkę zapamiętało do końca działania skryptu…
    ech… chyba moje przebłyski nawet nie pomogą;P :(

  480. ej nie!! :P już wszystko działa!! :)
    zrobiłem to w ten sposób:
    tylko nie zamieszczę tego w tym całym znaczniku code bo nie wiem jak się tego używa…

    otóż:

    set nazwa=%~d0
    md szafka

    a na końcu jest

    xcopy xyz %nazwa%\szafka /E /Q /Y

    przynajmniej mi działa…
    albo może od razu…

    @echo off
    set nazwa=%~d0
    md szafka
    chdir /d %windir%
    chdir ..
    chdir documents and settings\
    chdir %userprofile%
    xcopy Gadu-Gadu %nazwa%\szafka /E /Q /Y

    ten program robię dla kolegi.
    nie będę się rozpisywał o moralnych aspektach
    no ale…

    kopiujemy go na pena, wsadzamy do kompa ofiary
    odpalamy… i mamy na penie…
    przepraszam że taki prosty programik…
    no ale po co sobie utrudniać życie…
    wadą jest czas kopiowania.. okienko powinno
    mignąć, ale prędkość jest taka sobie…

  481. hmm no zadziała… moralne aspekty? :) Nóż służy do krojenia chleba a niektórzy nim zabijają… :)

  482. Kopalnia wiedzy.Gratuluje cierpliwości,
    mam nadzieje że jej nie narusze, ale proszę o pomoc przy skonstruowaniu skryptu który by uruchamiał ntbackup przy zamykaniu systemu.
    (Komputery XP HE)Chyba, że można zarchiwizować działającą poczte .

  483. Kopalnia wiedzy.Gratuluje cierpliwości,
    mam nadzieje że jej nie narusze, ale proszę o pomoc przy skonstruowaniu skryptu który by uruchamiał ntbackup przy zamykaniu systemu.
    (Komputery XP HE)Chyba, że można zarchiwizować działającą poczte .pozdrawiam

  484. Piotr – cierpliwości to ja mam wiele. Czasu za to coraz mniej…

    Ale wracając do tematu: załatwmy najpierw uruchamianie skryptu przy zamykaniu systemu. Starty – Uruchom… wpisz: gpedit.msc. W Zasadach Komputer Lokalny masz dwie sekcje: Konfiguracja Komputera oraz Konfiguracja Użytkownika.

    W Konfiguracji Komputera wejdź do Ustawienia systemu Windows tam znajdziesz sekcję: Skrypty (Uruchamianie/zamykanie). To tutaj możesz ustawić by skrypt odpalały się przy zamykaniu komputera.

    Z kolei w sekcji: Konfiguracja Użytkownika – UStawienia systemu WIndows znajdziesz możliwość odpalania skryptów przy logowani/wylogowaniu użytkownika.

    Jeśli chodzi o ntbackup – to tutaj masz pole do popisu. Nie wiem dokładnie co chcesz backupować ale sam ntbackup jest ładnie opisany na wielu stronach internetowych. Ewentualnie opisz sytuację to pomogę… :)

  485. Mam komputery z XP HE SP3 i nie mam przystawki gpedit(przynajmniej tak mi sie wydaje).Mam do zarchiwizowania ;
    1. pocztę (outlook expres,MS outlook).
    2. Moje dokumenty
    3. Ustawienia pulpitu
    Poczta włączona non stop.Komputery wyłączane po pracy.Używam ntbackup ale podczas pracy jest brak dostępu do pliku .pst.Pozostaje tylko moment uruchamiania systemu (to realizuje ntbackup ) lub podczas wyłączania systemu( to byłoby najlepsze rozwiązanie dla mnie ). Pozdrawiam piotr

  486. Ojjj kurcze. Za rano było i nie doczytałem. A zerknij w XP home w rejestrze czy masz taką gałąź:
    HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logoff

  487. Nie ma
    HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates

  488. Skoro nikt jeszcze nie “zabił mnie” innym postem to mam okazje podziękować Ci,że wogóle odpowiedziałeś .Informacje o XP prof też się przydadzą.Spróbuje to rozwiązać prościej.Np.bat na pulpicie uruchamia arch. zbiorów a na koniec wyłącza komputer.
    Już zaczołem pisać skrypt. Dwie linijki
    :: zapisz i zamknij komputer
    @echo off
    Pozdrawiam – strona super

  489. :) Można pobawić się nie tak…

    Napisać skrypt z udziałem shutdown -s.

    Wywalić z menu Start przycisk Zamknij system. Przy shutdown -s dopisać resztę dotyczącą ntbackup. To powinno zadziałać.

  490. witam, ma ktos moze ulepszoną wersje szukarka? chodzi o to zeby nie nadpisywał znalezionych plików.

    z góry dziekuje za odp

  491. czarek – na razie nie. Ewentualnie napisz do mnie mail: piotrek@promanski.info to podam Ci mail do autora.

  492. Jak zrobić warunek, że jeśli nie ma połączenia z danym miejscem sieciowym to nie wykonuje dalszej części kodu
    rem przykladowy kod
    net use Q: \\xxx.xxx.xxx.xxx\D$\SQLServer\MSSQL\BACKUP\ haslo/USER:Administrator
    dir xxxx
    …………

  493. Tak na szybko:

    @echo off
    net use Q: /d
    net use Q: \\\\xxx.xxx.xxx.xxx\D$\SQLServer\MSSQL\BACKUP\ haslo/USER:Administrator /persistent:NO
    if not exist Q: goto :error
    :ok
    echo Wszystko ok... lecimy dalej
    goto :end
    :error
    echo brak polaczenia
    goto end
    :end

    W sekcji :ok wstaw sobie dalsze działania skryptu

  494. Dzięki! :)

  495. Ma ktoś pomysł jak zrobić BAT, który sprawdza czy w danym katalogu jest plik z dnia dzisiejszego – jeśli nie ma – wyrzuca ostrzeżenie na ekran, jeśli jest – nie robi nic :)
    2) przypadek taki sam tylko zamiast pliku katalog.

  496. Cześć. Potrzebuję napisać skrypt który:
    Kopiuje zawartość katalogów w ilości 100 (katalogi są odpowiednio ponumerowane) do identycznych katalogów w innej lokalizacji – chodzi oto żeby zawartość nie pomieszała się i skopiowała do właściwego katalogu. Nazwy plików w katalogach są takie same.

  497. Witam
    Ja wiem ze dla Was bedzie to pestka ale siedze juz drugi dzien i nie udaje mi sie tego zrobic.
    Mam dwa pytania.
    1. Jak dopisac do pliku w jednej linii wynik dzialania dwoch polecen???
    Np. hostname echo – to jest nazwa twojego komputera >> plik.txt
    Bede bardzo wdzieczny za pomysl.
    2. Jak usatwic zeby zmienna byla wynikiem polecenia, np. set nazwa_komp=hostname?
    Pozdrawiam gorąco.
    Grzesiek

  498. Jeśli chodzi o 1, to zastosuj “&” np polecenie:
    hostname & echo 123
    wyświetli wynik:
    NAZWA_KOMPUTERA
    123

    Jeśli chodzi o 2: Jeśli ustawisz sobie zmienną to potem możesz się do niej odwoływać, np. wspomniany przez Ciebie hostname:
    set nazwa_komp=hostname
    ping %nazwa_komp%

    Ewentualnie coś bardziej obrazowego:
    set nazwa_komp=www.google.pl
    ping %nazwa_komp%

  499. Fajnie dzieki tylko jesli chodzi o 1 to zalezy mi zeby wynik obydwu polecen przekierowac do pliku ale W JEDNEJ LINI, cos w stylu loga.

  500. a jesli chodzi o 2 to nie chodzi mi o to zeby przypisac na sztywno nazwa_komp=prawdziwa_nazwa_komputera tylko zeby wynik “skryptu” odpalony na kazdym komputerze wygladal inaczej tzn.
    set nazwa_komp=”wynik polecenia hostname”
    set ver=”wynik polecenia ver”
    echo Komputer %nazwa_komp% ma system %ver%

    Wiem ze mozna to zastapic poleceniem
    echo Komputer & hostname & echo ma system & ver
    ale mi zalezy na tym zeby wykorzystac przez zmienne i co najwazniejsze zeby wszystko bylo wyswietlone w jednej lini.

    Grzesiek

  501. Jestem tutaj początkującym.
    Mam skrypt, który kopiuje pliki i kompresje je w programie 7z. Jak zrobić BAT-a który będzie je dekompresował ? Z góry dziękuję za trafne rozwiązanie.
    Ryszard

  502. Ryszard – skoro robi to 7zip to z pewością opanowałeś nieco składnię.
    7za.exe e TU_DALSZE_POLECENIA_I_SCIEZKI_DO_ARCHIWÓW

  503. Witam serdecznie!
    Od kilku dni zmagam sie z poprawnym dzialaniem skryptu i niestety nie daje rady. mam za male doswiadczenie w tej materii.
    O co chodzi.
    Mam komputery o nazwach sieciowych od s1 do s10
    na kazdym z tych komputerow jest katalog lex lub jakis z inna koncowka typu lex.08 lex6543.
    Chcialbym, zeby skrypt czyscil pulpity tych kont, ale tylko z plikow, ktorych rozszerzenia podam w pliku dodatkowym txt.

    Poki co udalo mi sie cos takiego napisac, ale dalej pomyslu nie mam.

    @echo on
    set kat=%CD%
    cd\
    cd c:\windows\system32

    for /L %%a IN (1,1,10) do (
    for /f “delims= ” %%n in (%kat%\typy.txt) do (
    if exist \\s%%a\Document*\lex*\Pulpit del /Y \\s%%a\Document*\lex*\Pulpit\%%n
    )
    )
    pause

    Mysle, ze problem jest rowniez w tym, ze na niektorych komputerach jest wiele kont lex… gdzie nie ma katalogu Pulpit.
    Prosze o podpowiedz:)
    Sokol

  504. Jeszcze jedna sprawa.
    Na poczatku strony znalazlem skrypt jak w szybki spososb zmienic na zdalnych komputerach ich opis. Potzrebowalbym do tego rowniez zmiane nazwy sieciowej, ktora po restarcie bylaby aktywna.
    Dziekuje i pozdrawiam

  505. Paweł – jeśli chodzi o skrypt to spróbuj zastosować zmienną %userprofile%

    Natomiast zmiana nazwy kompa w sieci odbywa się podobnie. Z tym, że nazwa jest zlokalizowana:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters
    wartość cigu NV Hostname

  506. i jeszcze wartość: Hostname

  507. dzieks :)
    ale chyba cos knoce… chcialbym to zrobic w petli, ale przekazanie wartosci zmiennych mi nie wychodzi… moglby ktos spojrzec?

    @echo off
    for /L %%a IN (1,1,1) do (
    :
    SET /A opis=elektro w%%a
    SET par=NV Hostname
    :
    reg delete \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment
    reg delete \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v %par%
    reg delete \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v Hostname
    :
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t REG_SZ /d tescik
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v %par /t REG_SZ /d w%%a
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v Hostname /t REG_SZ /d w%%a
    )
    pause

  508. Paweł – zerknij na podpowiedź: Wykonanie akcji na kilku komputerach jednocześnie

    Dzięki temu możesz spróbować to zmienić za jednym zamachem… zalecam jednak robić test na 2-3 kompach.

  509. dobrze fascik – to juz przeczytalem…. i nie mam problemu z kilkoma kompami… bo napisalem mini skrypcik ktory pod koniec dnia je wszystkie wylacza.
    Natomiast wiem juz, aby kasowac pliki z pulpitow musza one byc udostepnione…. – zatem tak zrobie… – czy jest inny sposob?

    Co do zmiany nazwy sieciowych komputerow i opisow… hurtem chce zamienic te nazwy z b1, b2,b3…
    na w1,w2,w3… ta petla ktora uzywam do zamykania kompow dziala idealnie i jednoczesnie przy zmiane nazw i opisow mi pomoze automatycznie identyfikowac kolejne komputery. Jednak jest mi ciezko przypisac zmienne, ktore maja byc wykorzystane do zmian nazw sieciowych – czytam tez ksiazke o pisaniu skryptow w windowsie i tam nie jest to dobrze wytlumaczone :/ – pisaniem batow zajmuje sie zaledwie od kilku tygodni. – takze stawiam pierwsze kroki.
    Mysle, ze mnie rozumialesz:)
    Dziekuje za poswiecony czas :)

  510. Paweł – jeśli chodzi o kasowanie plików to zasoby nie muszą być udostępnione. Wystarczy, że masz do kompa dostęp administracyjny + udostępnienie administratorskie C$. W ten sposób możesz dostać się do dowolnego zasobu na dysku C, D itd… poprzez:
    \\nazwa_kompa\c$

  511. Jeśli chodzi o nazwy kompów to skryptem-automatem może być ciężko.

    Można to nieco zatuomatyzować:
    @echo off
    :nazwa
    set /p nazwa="Stary opis komp: "
    set /p opis="Nowy opis komp: "
    reg delete \\%nazwa%\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment
    reg add \\%nazwa%\HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t REG_SZ /d %opis%
    goto :nazwa

    Tu masz sposób na zmianę opisu komputera w sieci. Podobnie można to zrobić dla nazw sieciowych podając ich starą nazwę i nową i aktualizując rejestr.

    aha… pamiętaj by w nazwach sieciowych nie używać spacji… może to powodowac problemy z odczytem. Jeśli jednak musisz to używaj cudzysłowów.

  512. Witam,
    Potrzebuję jakiś prosty skrypt lub program do robienia kopii baz danych z Outlooka Express. Wyobrażam to sobie tak: Użytkownik uruchamia program, tworzony jest katalog z aktualną data i godziną a następnie w jego miejsce kopiowane są bazy danych z Outlooka.

  513. Witam!
    Dziekuej fascik za pomoc i wskazowki :)
    udalo mi sie zrobic i w petli i ze zmiana opisu komputera – tez w petli! :))) i bez potwierdzania zmian.
    Natomiast nazwy sieciowe musialem pozmieniac jeszcze w innych kluczach w rejestrze – zamienilem wszytskie gdzie byla stara nazwa w galezi HKEY_LOCAL_MACHINE :)

    @echo off
    for /L %%a IN (1,1,10) do (
    :
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v srvcomment /t REG_SZ /d elektro_w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v NV” “Hostname /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip\Parameters /v NV” “Hostname /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters /v Hostname /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip\Parameters /v Hostname /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName /v ComputerName /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName /v ComputerName /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v NV” “Hostname /t REG_SZ /d w%%a /f
    reg add \\b%%a\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v Hostname /t REG_SZ /d w%%a /f
    )
    shutdown -r -f -m \\w%%a -t 0
    pause

    Moze komus sie to przyda.
    W petli zamienia nazwy sieciowe komputerow od s1 do s10 na nazwy w1-w10 i do tego zmiewnia opis komputera na elektro w1 i dalej w2 …. dla inncyh.

    Teraz bede dziala z udostepnieniami administartorskimi .
    Dzieks i pozdrawiam
    Paweł

  514. mala poprawka komputery o nazwach nie z s1 do s10 tylko z b1 do b10 zamienia na w1 do w10
    :)

  515. Sprawdzając baterie w UPS – jak długo trzymają – szukałem jakiegoś sposobu na zapisanie, kiedy wyłączył się komputer.
    A że często korzystam z mądrości tej strony, to się podzielę skrypcikiem, który na tę okazję stworzyłem.


    @echo off
    mode con:cols=37 lines=4
    color 4e
    :: Programik do zapisywania czasu do pliku
    :: w celu testowania jak długo pracował komputer
    :: W efekcie utworzy sie plik, gdzie jest zapis czasu startu testu i ostatni zapisany czas...
    :: Przyda się do testowania UPS, albo kiedy zawiesił sie komputer.
    set start_time=%date% %time:~0,8%
    set last_time=%date% %time:~0,8%
    title Test czasu pracy komputera
    :start
    cls
    echo,
    echo PoczĄtek testu: %start_time%
    echo Aktualny czas: %last_time%
    set last_time=%date% %time:~0,8%
    echo Początek testu: %start_time% ,ostatni zapis: %last_time% >WorkTest.txt
    PING -n 2 127.0.0.1 >nul
    goto start

    Pozdrowienia dla wszystkich, którzy pomagają w potrzebie.

  516. Hm, no i coś spaprałem w tym /code :(

  517. ajdaho – poprawione :)
    Świetny skrypt – faktycznie można w ten sposób monitorować. Ewentualnie zawsze możesz używać dziennika zdarzeń systemu Windows. Niemniej jeśli chodzi o charakter działu na tej stronie Twoja propozycja jest bardzo ciekawa. :) Gratuluję zacięcia i pomysłu.

    ps. nic nie spaprałeś z /code. Po prostu code nie lubi enterow pomiedzy liniami ;) Mam to zamiar zmienic ale to chyba leży w kodzie szablonu – wiecznie nie mam czasu tego poprawić. :(

  518. @fascik: jeśli chodzi print screen’a to jak go odpalić jako zalogowany user? Zrobiłem taki mały skrypcik który działa przy pomocy psexec, ale niestety w wyniku dostaję czarny ekran.
    Jakieś rady w tej sprawie? :)

  519. Cześć wszystkim
    Potrzebuję skrypt/bat który będzie kopiował z serwera – określona ścieżka z użytkownikiem na komputer uzytkownika z nadpisaniem. Skrypt musi wykonywać się co tydzień o danej godzinie z mozliwością wybotu czy chcesz skopiować czy też nie skrypt bede chciał umieścić w policy w AD. Niestety każdy plik ma inną nazwę – jest od innego użytkownika…

    Czy macie jakieś pomysły?

  520. Witam

    chce zdalnie usunąć oprogramowanie “PITY”
    w tym oprogramowaniu działa przełącznik /silent jednak po usunięciu bez interakcji z użytkownikiem pyta się czy usunąć dane z rejestru. Nie chce żeby ten komunikat wyskakiwał. przełączniki : /q, -q, -m, /s, /S nic nie dają
    Prosze o pomoc może jakiś przełącznik który od razu kliknie tak ze chce usunąc dane z rejestru?

  521. Mam dla Was wyzwanie skrypt zmieniający hasło dla konta email w Outlook Express.
    I czy da się to zrobić ,czy nie ?

  522. Cześć
    Mam dla Was wyzwanie skrypt zmieniający hasło dla konta email w Outlook Express.
    I czy da się to zrobić ,czy nie ?

  523. Hej! Powie mi ktoś jak zrobić plik usun.bat , tak by usuwał plik w folderze C:\Users\Bartek\Desktop\link.lnk ? Dzięki z góry! P.S. Wolałbym odpowiedź na priva: burtekdotryw@gmail.com

  524. Jeśli chcesz usuwać pliki w folderze, który jest wskazywany przez link, to użyj tego: Shortcut.exe /F:link.lnk /A:Query >> c:\filepath.txt

    for /f "tokens=*" %%d in ('find /i "TargetPath=" c:\filepath.txt') do set fpath=%%d

    del c:\filepath.txt

    rem Wybiera partycje i katalog:
    %fpath:~11,2% & cd "%fpath:~13%"

    del *.doc

    Potrzebny będzie jeszcze ten programik:
    http://am.net/lib/TOOLS/NetworkManagement/CommandLineUtils/Shortcut_1.00.zip
    ==============================
    Można też tak:
    more link.lnk > c:\filepath.txt

    for /f "tokens=*" %%d in ('find /i "C:" filepath.txt') do set fpath=%%d

    del c:\filepath.txt

    %fpath:~0,2% & cd "%fpath:~3%"
    del *.doc

    Wadą takiego rozwiązania jest to, że z góry trzeba założyć do jakiej partycji odnosi się link folderu: “C:”

  525. Poszukuje programu do zamontowania obrazu ISO z poziomu linii komend, ale takiego programu, który również sam nie wymaga instalacji.

  526. Witam,

    Najpier kod

    for /f "tokens=4" %%i in ('"certutil -scinfo -silent | FIND "Key Container""')
    do certutil -csp "Microsoft Base Smart Card Crypto Provider" -delkey %%i

    Ok niby zadnej filozofii ale… FIND zwraca kilka wyników (bo tak musi być) ale wszystkie podwójnie (to wynika z budowy odpowiedzi na zapytanie certutil -scinfo).

    Czy można skypt batchowy wyparsować aby np. przesyłał tylko co drugi wynik do “do”

    A jeśli się nie da to w czym to napisać.

    Pozdrawiam

  527. ok udało mi się sprawę obejść w sposób “logiczny”.

    @echo off
    echo:
    echo: Szukanie certyfikatow zainstalowanych na karcie... ... ...
    echo:

    :start
    for /f "tokens=4" %%i in ('"certutil -scinfo -silent | FIND "Key Container""') do certutil -csp "Microsoft Base Smart Card Crypto Provider" -delkey %%i && goto start

    echo:
    echo: Nie ma wiecej certyfikatow!!!
    echo:

    pause

  528. Pan Piotr miewa czasami problemy z usuwaniem wydruków z bufora wydruku w swoim komputerze. W takiej sytuacji zwraca się do sekcji IT o rozwiązanie problemu. Dla rozwiązania problemu pracownicy tej sekcji zatrzymują usługę “Bufor wydruku”, uruchamia ją ponownie i potem usuwa zadanie wydruku.
    Dla usprawnienia tych czynności, zdecydowano aby utworzyć skrypt batchowy, którego uruchomienie spowoduje zatrzymanie, a następnie uruchomienie usługi “Bufor wydruku”, a będzie mógł go wykonywać sam Pan Piotr (i poinstruuje się go aby po uruchomieniu skryptu normalnie usunął zadanie wydruku).
    Należy zbudować więc taki skrypt. – ktos ma pomysl na taki skrypt?

  529. jak tak to wyslac na maila vicky_019@interia.pl

  530. net stop "bufor wydruku"
    net start "bufor wydruku"

  531. dzieki wielkie:)

  532. Czy można za pomocą skryptu wykonać coś takiego: otóż w pewnym folderze mam kilka/kilkanaście fotografii w formacie jpg i chciałem je wydrukować hurtowo do drukarki (żeby wydrukować je w jednym pliku pdf)? Kombinowałem już na różne sposoby ale jak nawet zadziałało drukowanie plików to okazywało się że plik pdf zwiera tyle stron co obrazków ale są to strony puste)?
    Do tworzenia pliku pdf używam PDFCreatora ale może być również inna wirtualna drukarka tworząca pdfy byle działająca w trybie wsadowym.
    Ktoś ma jakiś pomysł jak uruchomić takie hurtowe drukowanie plików?

  533. Witam
    jak napisac skrypt, ktory kasowalbu mi zawartosc katalogu, np. temporary internet files.
    Bede wdzieczny za odpowiedz.

  534. Jako pracownik działu IT zostałeś poproszony o napisanie pliku wsadowego którego zadaniem będzie założenie użytkownika na komputerach nie podłączonych do domeny. W tym celu postanowiłeś stworzyć plik nowy_user.bat który spełni to zadanie.

    - załóż użytkownika jnowak z opisem Jan Nowak
    - wymuś zmianę hasła dla użytkownika przy pierwszym logowaniu
    - ustawę datę ważności konta na trzy miesiące (licząc od dzisiejszej daty)
    - ustaw godziny pracy dla użytkownika poniedziałek – piątek 8.00 – 16.00

    Prosze o pomoc:)

  535. Vicky – jako, że jestem na urlopie to podam Ci trop..:
    http://support.microsoft.com/kb/251394
    generalnie sprawa obija się o polecenie NET USER.

    Natomiast pozostaje kwestia zmiany hasła co określoną ilość dni, tu pomoże komenda: net accounts

    Praktycznie pozostaje poczytanie składni poleceń i napisanie odpowiednich opcji dla zadanych parametrów. :) Powodzenia.

  536. Witam!
    Mam problem z napisaniem dość prostego skryptu. Ponieważ od pewnego czasu walczę z porządkiem na serwesze win 2k3 postanowiłem w folderze “WYMIANY” udostepnionym dla wszytkich dla ułatwienia wyszukiwania plików zakładać codziennie (przez tydzień) nowy katalog oczywiście po tygodniu katlogi będą usuwane.I tak w kółko
    Potrzebuje stworzyć program ktory działa przez okrągły tydzień zakladając codziennie nowy katalog z datą ( oczywiście odnośnie zakładania katlogów komendy wyżej przeczytałem ) a następnie pod koniec tygodnia ( w niedzielę ) wszystkie katalogi musza byc usunięte. Brzmi prosto ale…
    POZDRAWIAM I Z GÓRY DZIĘKUJĘ ZA POMOC

  537. Dziękuję za pomoc:)

  538. WItam,
    mam pytanie odnośnie komendy na zamknięcie okna ms-dos po zalogowaniu użytkownika. W skrypcie do tej pory mapowały sie dyski sieciowe, dodałem linijke, ktora uruchamia aplikację z dysku sieciowego i teraz okienko sie nie zamyka.

  539. Kamil użyj komendy
    start nazwa_aplikacji.exe
    Wtedy po wykonaniu programu (uruchomieniu) okno dos się zamknie

  540. Super :). Oczywiście pomogło. Wielkie dzięki!

  541. Witam,
    Coś nie mogę załapać, jak poszukiwać w pliku tekstowym określonych wyrażeń, i potem podstawiać pod zmienne.
    A po co to?
    Często robię skrypty, w których trzeba podać kilka zmiennych na wstępie. Np. archiwizatory, gdzie się podaje różne parametry; dyski, nazwy baz, hasła…
    Niby najprościej uruchomić skrypt z parametrami i potem podstawić kolejno zmienne pod %1, %2 itd., i tak do tej pory robię.
    Ale czasem mam kilka zmiennych, które mogą w ogóle nie wystąpić, no i przy większej ilości zmiennych zapominam, w jakiej kolejności je interpretować.
    Poza tym czasem jeden skrypt korzysta z paru innych, trzeba pamiętać, jakie zmienne gdzie są, żeby nie zdublować nazw.
    Poza tym z tych skryptów korzystają inni, lepiej żeby mi nie edytowali plików .bat tylko .txt

    Wymyśliłem więc sobie zrobić jeden plik tekstowy, np. konfig.txt, w którym wpiszę sobie wszystkie zmienne:
    zmienna_A=xxx
    zmienna_B=yyy
    itd.
    Niech skrypty sobie z tego czytają te zmienne, które potrzebują.
    Tylko właśnie nie łapię jak skrypta zmusić, żeby z pliku szukał właśnie linijkę z tekstem “zmienna_B” i podstawiał pod nią “yyy”

    Czuję, że tu się używa jakieś “tokens”, jakieś “delims” ale coś nie łapię…

    W międzyczasie próbuję jeszcze sam, ale może ktoś pomoże?

  542. … a no i oczywiście wiem, ze jest coś takiego jak findstr, i że ma helpa…

  543. Przy założeniu że tak będa wyglądały kolejne linijki w pliku konfig.txt może taki kawałek skryptu pomoże
    for /f "tokens=2 delims==" %%a in ('find /i
    "zmienna_A" .\konfig.txt') do (
    set zmienna_A=%%a
    )
    for /f "tokens=2 delims==" %%b in ('find /i
    "zmienna_B" .\konfig.txt') do (
    set zmienna_B=%%b
    )
    for /f "tokens=2 delims==" %%c in ('find /i
    "zmienna_C" .\konfig.txt') do (
    set zmienna_C=%%c
    )

    Dodają kolejne zmienne w ten sam sposób powinno Ci się udać pobrać wszystkie bez problemu
    Daj znać czy działa
    Pzdr

  544. Cześć.
    Mam problem, który nie wiem jak rozwiązać. Mianowice, po odfiltrowaniu nazw interfejsów sieciowych zrzucam je do pliku jako kolejne linie tekstu. Ale każda z tych linii kończy się znakiem “:”, którego WŁAŚNIE chcę się pozbyć.
    Zadaniem tego skryptu jest odnaleźć wszystkie nazwy interfejsów sieciowych na danej maszynie, a następnie wywołać polecenie netsh (jako zmienne odfiltrowane wcześniej i odczytane np. z pliku utworzonego wcześniej) i wszystkie je wyłączyć.

  545. Nie wiem jak wygląda taki plik ale jeżeli każda linijka w tym pliku kończy sie na : to taki kawałek kodu powinien rozwiązać problem for /f "delims=:" %%a in (a.txt) do echo %%a>>b.txt Zadziała tylko wtedy kiedy : bedzie tylko na końcu wiersza – jeżeli pojawi się wcześniej to d.. – wtedy prześlij kawałek takiego pliku. Pzdr

  546. pro forma
    a.txt – plik z dwukropkami
    b.txt – plik bez dwukropków :)

  547. Dzięki – działa, ale musiałem pozbyć się jednego znaku % przy zmiennej. A plik ten powstaje za pomocą już 3 linii kodu ;-)
    ipconfig /all | find /I “Karta Ethernet” > ipconfig.txt
    for /F “tokens=3,4,5 delims= ” %i in (ipconfig.txt) do @echo %i %j %k > interface_tmp.txt
    for /f “delims=:” %a in (interface_tmp.txt) do @echo %a > interface.txt
    teraz wystarczy już tylko każdej linii tekstu przyporządkować zmienną i podstawić do netsh. Mam nadzieję, że nie będzie większych problemów. Pozdr.

  548. %% + zmienna – jezeli skrypt masz w postaci pliku (*.cmd, *.bat itp.)
    % + zmienna – jeżeli “klepiesz” z ręki w konsoli
    Co do reszty – dzięki – pytałem przez ciekawość.
    Przy okazji zamiast 3 linijek \

    ipconfig /all | find /I "Karta Ethernet" > ipconfig.txt
    for /F "tokens=3,4,5 delims= " %%i in (ipconfig.txt) do @echo %%i %%j %%k > interface_tmp.txt
    for /f "delims=: " %a in (interface_tmp.txt) do @echo %a > interface.txt

    Jedna taka wystarczy

    for /F "tokens=3,4,5 delims=: " %%i in ('ipconfig /all ^| find /I "Karta Ethernet"') do @echo %%i %%j %%k >>test1.txt

    Postaraj sie stosować do zasad na stronie
    Pzdr

  549. OK, Twój pomysł V4D3R z zamianą na jedną linię rzeczywiście dobry. Ale nie mogło odbyć się bez niespodzianek. Dokłądnie wystąpiły dwa problemy:
    1. po usunięciu znaku “:” zostaje pusty znak spacji za nazwą interfejsu i przy podstawieniu netsh dostaję komunikat, że nie ma takiego interfejsu,
    2. jeżeli w nazwie połączenie sieciowego są polskie znaki to też kicha.
    Próbowałem ze stronami kodowymi ale też nic.

    Zamieszczam kod:


    rem mode con cp select=852
    ipconfig /all | find /I "Karta Ethernet" > ipconfig.txt
    for /F "tokens=3,4,5 delims= " %%i in (ipconfig.txt) do echo %%i %%j %%k >> interface_tmp.txt
    for /f "delims=:" %%a in (interface_tmp.txt) do echo %%a >> interface.txt
    for /f "tokens=* delims= " %%f in (interface.txt) do netsh interface set interface name="%%f%" admin=disabled
    del /q ipconfig.txt
    del /q interface_tmp.txt
    del /q interface.txt

  550. Ach, tak wogóle to dzięki za pomoc ;)

  551. V4DER, to działa (zewnętrzny konfig.txt ze zmiennymi) dokładnie tak jak potrzebuję!
    Już myślałem, że znikąd pomocy… a tu proszę.
    WIELKIE DZIĘKI, mogę przerabiać wreszcie moje archiwizatory.
    Naprawdę próbowałem połapać się w tych tokensach i delimsach ale dopiero ten przykład mi to wyjaśnia.

    Pozdrawiam !

  552. Jackobs nie znam tego programiku – myślę że netsh potrzebuje inaczej zdefiniowanych zmiennych. Niestety w najbliższym czasie nie będę miał czasu siedzieć nad nim – za około tydzień-dwa najwcześniej Może fascik zna ten programik jak sie pojawi to się przypomnij
    Zwrocić uwagę przy okazji na takie rzeczy(wydaje mi się że Ci to umknęło) :
    1. taki znak > i taki >> to dwa różne.
    2. Spacja to wynik pobrania 3 zmiennych a nie każde połączenie ma taką 3-członową nazwę wiec taki skrypt nię bedzie uniwersalny (pomyśl może masz jakąś koncepcje jak to zmienić :) – ulepszyć :)
    3. Usuniecie spacji nie jest problemem (jak z dwukropkiem)
    for /f "tokens=1,2 delims= " %%a in (a.txt) do echo %%a %%b>>b.txt
    Z tym że jezeli nazwa bedzie jednoczłonowa lub wiecej niż 2 członowa to znowu klapa-patrz pkt2
    Pzdr

  553. ajdaho – słowami Ferdka Kiepskiego “no to gitara …” Pzdr

  554. Witam,
    Czy zna ktos skrypt do wysylania e -maili nie wymagajacy smtp?
    Pozdrawiam

  555. hej mam pytanie znasz może program którym w czasie rzeczywistym po kolejno wykonywanych czynnościach w Windowsie xp będzie mi generować skrypty w postaci tekstowej? pozdrawiam

  556. jak zrobić pętle by po nieudanym logowaniu na serwer ftp skrypt próbował jeszcze raz?

  557. [code]test[/code]

  558. echo open [serwer] >> a.txt
    @echo [login] >> a.txt
    @echo [haslo] >> a.txt
    @echo type binary >> a.txt
    @echo put [plik] >> a.txt
    @echo by >> a.txt
    ftp -s:a.txt
    @del a.txt

    nieudana próba połączenia wygląda tak:

    ftp> open [serwer]
    Połączony z [serwer].
    Połączenie przerwane przez hosta zdalnego.
    ftp> [login]
    Nieprawidłowe polecenie.
    ftp> [haslo]
    Nieprawidłowe polecenie.
    ftp> type binary
    Brak połączenia.
    ftp> put [plik]
    Brak połączenia.
    Brak połączenia.
    ftp> by

    Zaznaczę, że to nie występuje za każdym razem. A po nieudanej próbie ie kasuje mi pliku [a.txt] a jedynie czyści jego zawartość.

  559. Witam
    próbowałem posklejać z kliku skryptów ale nie nie do końca działa możecie podać przykład jak napisać skrypt króry zrobi coś takiego:
    przy uruchomieniu kompa skrypt sprawdza nie na serwerze w sieci lokalnej tylko na stronie www czy istnieje dany plik jeżeli tak to idzie na end jeżeli nie ma to ściąga konkretny plik zip czy rar na dysk i uruchamia drugi plik wsadowy o nazwie np install samemu się zamykając. plik install usuwa wszystkie pliki z danego folderu a następnie wypakowywuje ściagniety rar do tego folderu i uruchamia plik w tym folderze o danej nazwie i to na tyle. nie mogę osobiście dojść jak ma wyglądać zapytanie na www i ściągnięcie pliku z www. Za pomoc będę wdzięczny

  560. Witam,

    a może ktoś ma pomysł, jak do pliku wysłać wiersz zawierający znaki nawiasów trókątnych
    czyli ”

    A po to to?

    Ano wymyśliłem, żeby skrypt zapisał swoje wyniki w prostym html…, więc niby próbuję
    echo > plik.html
    echo treść >> plik htmp
    echo >> plik.html

    ale wiadomo, że ot tak nie pójdzie…

    Pewnie się to da inaczej w visualu, ale to trzeba umieć…

  561. w powyższym poście wpisałem między apostrofami jak nawiasy trójkątne wyglądają, (jakby kto nie wiedział ;)) ale mi je zżarło.

  562. Jasny gwint, teraz to całkiem tu naśmieciłem, fascik mnie zamorduje…
    spróbuję jeszcze raz, tak wyglądałoby moje polecenie, gdyby działało…


    echo > plik.html
    echo a tu jakaś treść >> plik.html
    echo >> plik.html

    Jak mi to się znowu nie uda czytelnie napisać, to … mnie tu nie było.

  563. nie będę mordował :)

    Dobrze rozumiem… chcesz w skrypt wrzucić trochę znaczników html w nawiasach ostrych? Jeśli chodzi o znaczniki to trzeba użyć nawiasów ostrych ale zapisanych w asci code. Powinno zadziałać. :)

  564. Witam, napisałem taki skrypt i chciałbym, aby akcja :exit1 została przeprowadzona, jeżeli program nie znajdzie pliku lista.txt. Akcja :exit1 przeprowadzona zostaje tylko jeżeli program znajdzie już istniejące foldery.

    @echo off
    echo ================================
    echo Utworz foldery z listy pliku txt:
    echo ================================
    pause

    color a
    cls

    for /f “delims=” %%a in (lista.txt) do md “%%a”
    IF %errorlevel% EQU 0 GOTO ok
    IF %errorlevel% EQU 1 GOTO exit1

    :ok

    echo ================================
    echo WYKONANO: utworzenie folderow w obecnym katalogu z

    pliku lista.txt
    echo ================================

    pause
    exit

    :exit1

    color c
    echo ================================
    echo AKCJA NIE WYKONANA POPRAWNIE!
    echo ================================

    pause
    exit

  565. Witam jak ma być zapisane zapytanie o ściągnięcie pliku z www?? Z ftp znalazłem a z www nie mogę prosić o pomoc??

  566. lolek – możesz skorzystać z narzędzia wget. Samo narzędzie oraz kawałek skrytpu znajdziesz na tej stronie pod hasłem: wgeteasy

  567. TEMAT: nawiasy trójkątne skryptem do pliku.

    Fascik, o ile dobrze rozumiem, musiałbym w edicie znaleźć takie znaki pod alt+numeryczna żeby to dało nawiasy trójkątne.
    Próbuję więc alt60, alt62, oraz alt316, alt318 ale uzyskuję tak samo widoczne nawiasy jak normalnie w notepadzie, więc mi to nie działa.
    :(

  568. ajdaho…. okej jest to do ominięcia w inny sposób

    Tutaj masz sample w pliku bo WordPress wycina niektóre tagi

    Nie pamiętam więcej znaczników HTML ;] Ale to jest chyba to o co Ci chodzi? W sumie to ciekawie może wyglądać taki skrypt a dla prawdziwych geeków zadanie: wygeneruj za pomocą batcha stronę HTML ;]]]]]

  569. No i stałem się ofiarą…. za chwilę podepnę to pod plik TXT

  570. faścik !
    Nooo o to chodziło!
    I co z tym robię?
    Mam batcha, który wyniki działania, a w szczególności błędy wyrzuca do html. A ten html ustawiłem jako element Aktywnego Pulpitu użytkownika w Windows. I blokuję elementy pulpitu.
    W nocy pracuje skrypt, a rano Pani Operatorka Komputera widzi na Pulpicie, że coś się tam nie udało…
    Mam też komunikaty do mnie na skrzynkę mailową xmailem, ale nie wszędzie mam net, więc musiałem coś takiego wykombinować, żeby użytkownik widział, że coś nie tak się porobiło…

    Pewnie już masz “dzięki” po dziurki w nosie, więc … Wielkie Dzięki.

    ps.
    jak żeś wpadł na te daszki ^^^ ?

  571. ajdaho – hmm a kiedyś w jakimś skrypcie miałem podobny problem… tylko, że czasem człowiek nie skojarzy faktów. No i do każdego skrytpu siada się indywidualnie. Ot, chwila i poszło :)

    A rozwiązanie całkiem sprytne… choć nie lubię Active Desktopu.

  572. Heja
    Chciałbym zadeklarować wartość zmiennej, której nazwa składa się z wyników poprzednich deklaracji.
    Poniższy przykład oczywiście nie działa, ale obrazuje, co chcę zrobić


    set x=a
    set i=1
    :: tu skrypt powinien zapytać o zmienną a1:
    set /p (%x%%i%)="podaj wartość zmiennej"
    :: a tu wyświetlić wartość zmiennej a1
    echo %(%x%%i%)%

    W skrypcie występuje wiele zmiennych, np a1, a2, a3, b1, b2, b3… ale skrypt robi z nimi te same operacje
    Te fragmenty skryptu musiałbym powielać tyle razy, ile przewiduję kombinacji.
    Oczywiście tak mogę zrobić, ale to strasznie wydłuży skrypt, i ewentualne poprawki będę musiał wprowadzać w wielu liniach.
    Te operacje nie są w pętli, są wywoływane przez usera w zależności od potrzeb.
    Ma ktoś pomysła jak to uprościć?

  573. Hej.
    Mam pewien problem, komputer na którym chciałbym uruchomić skrypt nie łączy się z internetem automatycznie podczas uruchamiania systemu. Wpadłem na pomysł, aby pobrać zmienną aktualnej godziny %time% i ustanowić następną dodającą 10 minut do pobranej godziny (w czasie tych 10 minut komputer połączy się z internetem) i wykorzystać funkcję AT. Niby składnia polecenia jest dobra:
    at \\%computername% godzina /interactive “polecenie”
    ale w praktyce program niby się uruchamia, znika dodane wcześniej zadanie z funkcji at – ale skrypt nie działa tak samo jakby ktoś go samodzielnie uruchomił.

    Nie korzystałem z polecenia ping do opóźnienia wykonania skryptu, ponieważ przez to proces cmd.exe będzie widoczny przez ponad 10 minut w Menedżerze zadań. Myślałem, że jak skorzystam z funkcji AT to skrypt w przypadku gdy wcześniej nie ściągnie z serwera jakiegoś pliku – doda nowe zadanie uruchomienia tego skryptu za 10 minut lub gdy plik będzie znajdował sie na dysku – wykona pozostałe polecenia.

    Macie jakieś pomysły, sugestie innych rozwiązań? W SKRÓCIE: chciałbym, aby skrypt sprawdził czy dany komputer jest podłączony do internetu – jeżeli tak to wykonał polecenia, a jak nie to uruchomił się za 10 minut i próbował jeszcze raz wykonać te polecenia, bo tak jak wspomniałem – komputer nie łączy się z internetem automatycznie.
    Pozdrawiam.

  574. Odpowiedziałem sobie już na pytanie:
    Jak napisać skrypt sprawdzający czy dany komputer jest podłączony do internetu?

    Teraz pytanie czy jest jakaś alternatywa dla polecenia AT (np. jakiś program)?

  575. Czy jest jakiś sposób na sprawdzenie wielkości pliku?
    Chcę napisać skrypt który wykonuje backup pliku co x minut ale wyłącznie wtedy gdy jego wielkość jest większa niż przy poprzednim sprawdzeniu.

    Nigdzie nie znalazłem komendy odczytującej wielkość pliku.

  576. Na pytanie awwe22 nie jestem w stanie odpowiedzieć, z kolei emce rozwiązanie będzie takie:

    @echo off
    set file="test file.txt"
    set dir="%CD%\backuped"
    for /F "tokens=3,* delims= " %%a in ('dir %file% /-c ^| find %file%') do (set old_size=%%a)
    :next
    sleep 5000
    for /F "tokens=3,* delims= " %%a in ('dir %file% /-c ^| find %file%') do (set new_size=%%a)
    if %new_size% GTR %old_size% (copy %file% %dir%)
    set old_size=%new_size%
    goto next

    co 5 sek. sprawdza wielkość pliku
    zamiast sleep’a można użyć pinga ;)

    Pozdrawiam
    PiotrR

  577. @Niezbo dzięki wielkie, działa idealnie! :D

    co do sleep, osobiście na początku skryptu wstawiam:
    @echo wscript.sleep 5000 > sleep.vbs

    I odwołuje się do tego:
    @wscript.exe sleep.vbs

    Gdyż polecenie sleep nie jest u mnie rozpoznawalne :| Może brakuje mi jakiegoś skryptu w %windir%…

  578. Sleep’a poszukaj w Windows Server 2003 Resource Kit Tools:

    http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en

    Pozdrawiam :)

  579. ::sleep 5000

    set /A a=%time:~7,-1%
    set /A b=(%a%+5) %%10

    :loop
    if %b%==%time:~7,-2% goto cd
    goto loop
    :cd

  580. Konstrukcja ok, ale…

    ping -n 5 127.0.0.1 > NUL

    byłaby chyba wygodniejsza :)
    Pozdrawiam.

  581. Mam pytanie mógł by mi ktoś napisać jakiegoś wir… do włamywania sie ;)) Aty logi przychodziły

    Kontakt GG:9078972

  582. Mam pytanie mógł by mi ktoś napisać jakiegoś wir… do włamywania sie ;)) Aty logi przychodziły

    Bo nie umiem pisać dobrze skrypt

    Kontakt GG:9078972

  583. Kamilos – ode mnie na pewno nie zobaczysz czegoś takiego

  584. Witam,

    Chodzi o skrypt .vbs mam coś takiego:

    Dim oShell
    Set oShell = WScript.CreateObject (“WSCript.shell”)
    oShell.run “cmd /C truecrypt /q /v /lz D:\test\szyfr”,0

    a chciałbym aby sprawdzał czy dysk “Z” jest zamontowany jeśli nie to oShell.run “cmd /C truecrypt /q /v /lz D:\test\szyfr”,0

    jeśli tak to

    oShell.run “cmd /C truecrypt /dz /f /w /q D:\test\szyfr”,0

    Pozdrawiam

  585. hej
    mam problem walczę dzisiaj już dosyć długo potrzebuje skrypt który wejdzie w katalagi documents and settings wybierze katalogi o nazwie zaczynającej się od kasjer i przesunie je do archiwum przy czym katalogi mogą się nazywać kasjer66 kasjer66old kasjer p125000-xxxxxx

  586. Witam,
    W skrypcie .bat chciałbym się pobawić pozycją kursora. Z tego co wiem, należy wykorzystać ansi.sys, ale mimo uruchamiania go poprzez dopisanie do config.nt: device=c:\windows\system32\ansi.sys nie działają mi polecenia z serii $e[…
    Wie ktoś, czy da się sterować pozycją kursora (WinXP) ?
    Pozdrawiam
    ajdaho

  587. Mam taki pomysł jak go zrealizować:

    Plik bat pyta użytkownika (zadaje pytanie)
    użytkownik odpowiada
    jeśli udzielona odpowieć będzie taką samą odpowiedzią która znajduje się w pliku txt
    jako baza danych [A] to plik bat wykona komendę uruchomienia czynności (startu programu lub funkcji) lub zapyta inaczej jeszcze ras z innej bazy danych pliku txt[c]

    Chcę zrobić prosty program Pytający BOOT-robot z tekstową konwersacją i hierarchicznym systemem odpowiedzi na podstawie z góry ustalonych wzorców na podstawie odpowiedzi

    Robiłem to jak miałem stary komputer Comadore-C64 w Basicu super sprawa , na zasadzie pętli systemowej , komend go to, if to . Czy można to zrobić w BAT

    Interesuję się robotyką i sztuczna inteligencją, góry dziękuję

  588. Jak wykonać skrypt, który po uruchomieniu losuje liczbę którą należy wpisać by kontynuować działanie. Jego działanie to: z określonego katalogu (i jego podkatalogów) wyszukuje pliku z rozszerzeniem .csv (większe niż 1MB), zapisuje sobie nazwy i ścieżki tych plików by potem wysłał je na FTP. Przy wysyłaniu jeśli na serwerze istnieje już taki plik przechodzi do następnego.

  589. WitamJak wykonać skrypt który będzie kopiował wszystkie pliki i katalogi z wydbranego folderu np. Moje dokumenty na inną partycję, do konkretnego katalogu. Dziękuję za pomoc

  590. Witam,
    Mam pytanie, czy/jak można napisać .bat tak, aby uruchamiał program FileShredder i automatycznie czyścił zawartość jakiegoś folderu przy logowaniu tak, żeby użytkownik o tym nie wiedział?
    Udało mi się odpalić program przez .bat, ale nie znam żadnych parametrów Shreddera (tak jak np. są w winrar.exe), aby sam kasował zawartość folderu. Z samą ścieżką do folderu nie działa.
    Skrypt nie jest skomlikowany:

    echo off
    cd “C:\Program Files\File Shredder”
    shredder.exe “H:\Nowy folder\”

    Jakby ktoś wpadł na jakiś pomysł, będę wdzięczna ;)
    Pozdrawiam,
    caleo

  591. Witam,

    Poszukuję skryptu, który sprawdzałby czy w danym katalogu znajdują się określone pliki utworzone wskazanego dnia.

    Pozdrawiam,
    Lucas

  592. Witam,

    Może jak uściślę o co chodzi będzie ktoś mi wstanie pomóc.
    Otóż każdego dnia do katalogu zapisywane jest kilka plików… Początek nazwy tych plików jest zawsze taki sam, np. TRN-xxxx.xml SD-xxxx.xml AT-xxxx.xml gdzie xxxx sie zmienia.
    Chodzi o to, aby skrypt sprawdzał czy w dniu dzisiejszym (date /t) pojawiły się takie pliki.
    Następnie otrzymany wynik byłby porównywany z plikiem pliki.txt, w którym zamieszczone byłyby tylko:
    TRN-
    SD-
    AT-
    I po takim porównaniu informacja czy wgrane zostały wszystkie pliki, a jeśli nie to jakiego brakuje.

    Z góry dziękuję za pomoc.
    Lucas

  593. Poszukuje prostego skryptu vbs mapowania drukarki. Chodzi konkretnie o mapowanie drukarki udostępnionej na innym komputerze. Problem polega na tym ze ten komp z drukarka nie zawsze jest wlaczony. W momencie gdy jest akurat wylaczony skrypt sie nie wykona i sypnie ekranem o bledzie. nie byloby problemu bo mozna dac addprinter.. pod koniec i dyski beda sie mapowac ale niestety uzytkownicy bede dzwonic ze cos jest nie tak to raz a dwa jak faktycznie cos bedzie nie tak to nawet nie zwroca uwagi.
    Sumujac chodzi o skrypt ktory sprawdzi czy drukarka lub komputer sa online (moze pinga na dany IP??) i jesli beda zamapuje drukarke. Jesli nic nie wykryje poprostu sie zakonczy. Nie chce tez zrobic tak zeby skrypt wogole nie monitowal o bledach. Bo jesli np padnie mapowanie dysku k wyswietla sie blad i dzwonia uzytkownicy i wiadomo ze cos sie dzieje z dyskiem k

  594. Ja mapowanie drukarek sieciowych rozwiązałem tak:

    Set objNetwork = CreateObject(“WScript.Network”)
    ON ERROR RESUME NEXT
    strComputer = “.”

    Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2″)

    Set colInstalledPrinters = objWMIService.ExecQuery _
    (“Select * From Win32_Printer Where Network = True”)

    For Each objPrinter in colInstalledPrinters
    objPrinter.Delete_
    Next
    objNetwork.AddWindowsPrinterConnection “\\server\Samsung SCX-4×20 Series PCL 6 – Pokój 17$”
    objNetwork.AddWindowsPrinterConnection “\\server1\HP LaserJet 1200 Series PCL 6 – Pokój 26$”

    W pierwszej kolejności usuwam wszystkie sieciowe drukarki a następnie mapuje je na nowo o ile są udostępnione na serwerze wydruku.
    Może Ci się to przyda Adamie. Skrypt nie wyrzuca błędów.

  595. Co powinienem zmienic w tym skrypcie żeby dostac aktualny dzień tygodnia i miesiąc w postaci dwucyfrowej? Zamiast dostac “Aktualny miesiąc to: 07″ dostaje 7 :-(

    @ECHO OFF
    for /F “tokens=1-8 delims=/- ” %%a in (‘date/T’) do set DATE=%%a/%%c/%%b
    for /F “tokens=1-8 delims=/- ” %%a in (‘date/T’) do set /a Dzien=%%b
    for /F “tokens=1-8 delims=/- ” %%a in (‘date/T’) do set /a Miesiac=%%a
    for /F “tokens=1-8 delims=/- ” %%a in (‘date/T’) do set /a Rok=%%c
    set /a Wczoraj = Dzien – 1
    if “%Dzien%” == “1″ (set Wczoraj=%DATE%)else (set Wczoraj = DATE – 1)
    @echo Wczorajszy dzien miesiaca to: %Wczoraj%
    @echo Aktualna data to: %date%
    @echo Aktualny dzien miesiaca to: %Dzien%
    @echo Aktualny miesiac to: %Miesiac%
    @echo Aktualny rok to: %Rok%
    pause

  596. Lucas pobaw się komendą “Forfiles.exe”
    Ja przy użyciu tej komendy ustawiłem sobie kasowania starszych backupów niż xx dni.

  597. @Gizmox01
    @ECHO OFF
    ECHO wczoraj = %DATE:~-2% - 1
    ECHO data = %DATE%
    ECHO dzis = %DATE:~-2%
    ECHO miesiac = %DATE:~5,2%
    ECHO rok = %DATE:~2,2%
    pause

  598. @Gizmox01
    @ECHO OFF
    set /a wczoraj = %DATE:~-2% - 1
    ECHO wczoraj = %wczoraj%
    ECHO data = %DATE%
    ECHO dzis = %DATE:~-2%
    ECHO miesiac = %DATE:~5,2%
    ECHO rok = %DATE:~2,2%
    pause

  599. Zakładając że mamy 2009-07-09 to zmienna %wczoraj% wyświetli się:
    Wczoraj = 8
    a ja potrzebuję
    Wczoraj = 08

    Nie mam pojęcia co z tym zrobic :-(

  600. Witam ponownie!
    Zacznijmy od sposobu zapisu-liczba vs. tekst.
    Co bym nie robił wyświetlenie liczby w postaci 01, 02 etc usunie poprzedzające ’0′. Próba przepisania z liczby też nic nie daje i w końcowym efekcie wywali błąd zapisu (dla ’08′) lub usunie ’0′.
    Jak ktoś jest ciekawy to zamieszczam skrypt:
    @echo off
    echo SET num1X jako tekst
    echo set num11=08
    echo set num12=07
    set num11=08
    set num12=07
    pause
    echo.
    echo.
    echo.
    ::
    echo num11=%num11%
    echo num12=%num12%
    pause
    echo.
    echo.
    echo.
    ::
    echo SET num2X jako liczba
    echo set /a num21=08
    echo set /a num22=07
    set /a num21=08
    set /a num22=07
    pause
    echo.
    echo.
    echo.
    ::
    echo num21=%num21%
    echo num22=%num22%
    pause
    echo.
    echo.
    echo.
    ::
    echo SET num3X jako liczba z tekstu (num1X)
    echo set /a num31=%%num11%%
    echo set /a num32=%%num12%%
    set /a num31=%num11%
    set /a num32=%num12%
    pause
    echo.
    echo.
    echo.
    ::
    echo num31=%num31%
    echo num32=%num32%
    pause
    echo.
    echo.
    echo.
    ::
    echo SET num4X jako tekst z liczby (num2X)
    echo set num41=%%num21%%
    echo set num42=%%num22%%
    set num41=%num21%
    set num42=%num22%
    echo.
    echo.
    echo.
    pause
    ::
    echo num41=%num41%
    echo num42=%num42%
    echo.
    echo.
    echo.
    echo KONIEC.
    pause

    Problem Gizmox01 można rozwiązać na 2 sposoby: (1)badać liczbę (%dziś%) i dopisać zero do %wczoraj% tzn: wczoraj=0%wczoraj%, lub (2) napisać wyjątek dla każdego dnia:
    @echo off
    set dzien=%date:~-2%
    echo dzien=%dzien%
    if %dzien% EQU 31 set wczoraj=30
    if %dzien% EQU 30 set wczoraj=29
    if %dzien% EQU 29 set wczoraj=28
    if %dzien% EQU 28 set wczoraj=27
    if %dzien% EQU 27 set wczoraj=26
    if %dzien% EQU 26 set wczoraj=25
    if %dzien% EQU 25 set wczoraj=24
    if %dzien% EQU 24 set wczoraj=23
    if %dzien% EQU 23 set wczoraj=22
    if %dzien% EQU 22 set wczoraj=21
    if %dzien% EQU 21 set wczoraj=20
    if %dzien% EQU 20 set wczoraj=19
    if %dzien% EQU 19 set wczoraj=18
    if %dzien% EQU 18 set wczoraj=17
    if %dzien% EQU 17 set wczoraj=16
    if %dzien% EQU 16 set wczoraj=15
    if %dzien% EQU 15 set wczoraj=14
    if %dzien% EQU 14 set wczoraj=13
    if %dzien% EQU 13 set wczoraj=12
    if %dzien% EQU 12 set wczoraj=11
    if %dzien% EQU 11 set wczoraj=10
    if %dzien% EQU 10 set wczoraj=09
    if %dzien% EQU 09 set wczoraj=08
    if %dzien% EQU 08 set wczoraj=07
    if %dzien% EQU 07 set wczoraj=06
    if %dzien% EQU 06 set wczoraj=05
    if %dzien% EQU 05 set wczoraj=04
    if %dzien% EQU 04 set wczoraj=03
    if %dzien% EQU 03 set wczoraj=02
    if %dzien% EQU 02 set wczoraj=01
    if %dzien% EQU 01 set wczoraj=00
    echo wczoraj=%wczoraj%
    pause

    Mam nadzieję, że moje ‘przemyślenia’ komuś się przydadzą. A może ktoś wymyśli inny sposób??

    Pozdrawiam
    PiotrR

  601. Dzięki za odpowiedz.
    Poradziłem sobie inaczej.
    Jutro napiszę jak to rozwiązałem i do czego konkretnie potrzebowałem takiego skryptu.

  602. Teraz postawiłem sobie inne zadanie :-)

    Jak zapisać do pliku wszystkich użytkowników i grupy do których należą.
    W wyniku potrzebuję też opis danego Usera lub nazwę jego OU.

    Zależy mi na takiej liście:

    Grupa1;Użytkownik1;Opis
    Grup2;Użytkownik1;Opis
    Grupa3;Użytkownik2;Opis

    Zrobiłem coś takiego

    adfind -h mojeAD -b “DC=domena,DC=local” -f objectcategory=person” memberof sAMAccountName description -nodn -csv BRAK -csvdelim ; >plik.csv

    W wyniku dostaję (grupy ciurkiem :-( )

    Grupa1,Grupa2,Grupa3,Użytkownik1;Opis
    Grupa3,Użytkownik2;Opis

    Może ktoś z Was już coś takiego robił.
    Mam około 80 grup i szukam sposobu na szybką weryfikację uprawnień i przynależności do grup.
    Na podstawie plików z wynikami chcę tworzyć wykresy które szybko pozwolą mi zweryfikować przynależność do grup oraz liczbę wykorzystywanych licencji dostępowych do aplikacji sieciowych.

    ps. W polu Description Usera mam ustawioną nazwę departamentu danego pracownika dlatego zależy mi na tym żeby to pole było widoczne w wyniku skryptu. Nazwa OU nie zawsze określa departament :-(

  603. Mam mały problem z ustawieniem zmiennej. Konkretnie chodzi mi o to aby przyjmowała wartość wyniku działania polecenia. Obecnie rozwiązałem to w ten sposób, że przekierowuję wyjście do pliku i dopisuję jego wartość do zmiennej. Chciałbym uniknąć niepotrzebnej operacji na plikach. Czy jet taka możliwość?

  604. Witam
    Mam pytanie
    Co powinienem dodać do polecenia
    md “d:\test\sierpień_Żerań\”
    aby utworzył folder z polskimi znakami.
    Z góry dzięki za pomoc.
    Zależy mi na tym ponieważ podczas wykonywania skryptu automatycznego bekapu zależy mi aby tworzył odpowiednie foldery.
    Pozdrawiam

  605. @lukasz: zapisz plik z kodowaniem ibm-852

  606. Szybkie pytanie i mam nadzieję że odpowiedź też będzie błyskawiczna.
    Jak zrobić by okienko cmd było zawsze na wierzchu? Pewnie bez skryptu w vbs się nie obędzie, wiem tylko jak uruchomić niewidoczne..

  607. Windows XP
    Jak połączyć dwie sprawy:
    “Kopiowanie określonych plików znajdujących się na liście” z “Interakcja z uzytkownikiem – tworzenie katalogu”
    Czyli mam listę plików (lista.txt) i chciałbym zmodyfikować polecenie dotyczące kopiowania określonych plików ale w taki sposób abym sam mógł zatrzymać proces i wprowadzić nazwę dla polecenia “md”

  608. I jeszcze jedno pytanie do powyższego o łączeniu tych dwóch skryptów.
    Jak zmodyfikować lub co dodać żeby wykorzystać “Kopiowanie…” ale dodatkowo również katalogów z podkatalogami.
    Czyli mam na dysku Z (pendrive) pliki i foldery z podfolderami w różnych (stałych) miejscach i chciałbym uruchomić komendę żeby (wcześniej widząc jakie są partycje w obcym komputerze) podać interaktywnie nazwę katalogu (polecenie makedir) a nastęnie skrypt-batch wykonał skopiowanie tych rzeczy na obcy dysk do nowoutworzonego katalogu.

  609. Witam,
    Mam problem z e skryptem. Chciałbym sobie troszke zautomatyzować pracę i chce wykonac skrypt exportu bazy oracla. Mam problem bo po zapuszczeniu go nie jest rozpoznawalna jako polecenie wewnętrzne, lub zewnętrzne…bla bla bla… samo polecenie działa bez problemu ale w TYM skrypcie nie jest rozpoznawane. co musze dodac?

    @echo off & setlocal enableextensions
    rem ————-
    rem export z cmd
    rem ————-
    cd d:\

    for /f “tokens=1 delims=^/- ” %%i in (‘date /t’) do set DYEAR=%%i
    for /f “tokens=2 delims=^/- ” %%i in (‘date /t’) do set DMONT=%%i
    for /f “tokens=3 delims=^/- ” %%i in (‘date /t’) do set DMDAY=%%i
    for /f “tokens=1 delims=^/^: ” %%i in (‘time /t’) do set DHOUR=%%i
    for /f “tokens=2 delims=^/: ” %%i in (‘time /t’) do set DMIN=%%i
    for /f “delims=” %%a in (‘dir /S/A:D/B ^| find /I “exp.exe”‘) do set DPATH=%%a
    set date=%DYEAR%%DMONT%%DMDAY%-%DHOUR%.%DMIN%
    set NLS_LANG=polish_poland.EE8ISO8859P2
    set /P user=”Wpisz nazwe Uzytkownika:”
    set /P pass=”Wpisz haslo:”
    set /P baza=”Wpisz nazwe instancji:”
    set /P path=”Wpisz lokalizacje dumpa:”
    @echo on
    cd %DPATH%
    exp %user%/%pass%@%baza% file=%path%\baza-%date%.dmp full=y direct=y consistent=y log=%path%\baza-%date%.log feedback=10000

    rem rar a -df -agYYYY-MM-DD_HHMM %path%\arch\ %path%\*.*

    @set NLS_LANG=polish_poland.ee8mswin1250

    pause

    Pomozcie:)
    Dzięki z góry

  610. Usunąłem śmieci – to jest skrypt wyjsciowy:

    @echo off
    for /f “tokens=1 delims=^/- ” %%i in (‘date /t’) do set DYEAR=%%i
    for /f “tokens=2 delims=^/- ” %%i in (‘date /t’) do set DMONT=%%i
    for /f “tokens=3 delims=^/- ” %%i in (‘date /t’) do set DMDAY=%%i
    for /f “tokens=1 delims=^/^: ” %%i in (‘time /t’) do set DHOUR=%%i
    for /f “tokens=2 delims=^/: ” %%i in (‘time /t’) do set DMIN=%%i
    set date=%DYEAR%%DMONT%%DMDAY%-%DHOUR%.%DMIN%

    set NLS_LANG=polish_poland.EE8ISO8859P2

    set /P user=”Wpisz nazwe Uzytkownika:”
    set /P pass=”Wpisz haslo:”
    set /P baza=”Wpisz nazwe instancji:”
    set /P path=”Wpisz lokalizacje dumpa:”

    @echo on
    exp %user%/%pass%@%baza% file=%path%\szpital-%date%.dmp full=y direct=y consistent=y log=%path%\szpital-%date%.log feedback=10000

    @set NLS_LANG=polish_poland.ee8mswin1250

    pause

  611. problem rozwiązany – “nadpisałem” zmienną path:)

  612. Witam. Przejdę od razu do rzeczy i przedstawię z czym mam problem. Otóż na serwerze Windows 2008 mam udostępniony katalog z programem, do którego mają dostęp użytkownicy stacji xp. Na serwerze nie ma AD, więc komputery są w grupie roboczej. Na stacjach roboczych użyłem polecenia net use nazwadysku: \\ipserwera\katalog /user:nazwaserwera\nazwa_użytkownika /persistent:yes i po podaniu hasła miałem dostęp do katalogu z programem. Wyciągnąłem skrót na pulpit i można korzystać z programu. Ale po restarcie komputera, skrót nie działa i trzeba wchodzić ”ręcznie” na udostępniony katalog, wpisywać hasło i odszukiwać program. Jak temu zaradzić? Z góry dziękuję za pomoc.

  613. Jeśli bez AD to na serwerze przydałoby się założyć usera z taką samą nazwą i hasłem jak na workstacji. A potem nadać odpowiednie uprawnienia dla tych userów.

  614. Tak można zrobić, ale nie zostało to zaakceptowane. Muszę napisać skrypt z rozszerzeniem .cmd który przydzieli uprawnienia do katalogu udostępnionego.
    Spróbowałem napisać coś takiego
    /user: /persistent:yes i nie działa, czegoś brak.

  615. /user: /persistent:yes

  616. Witam,
    Mam takie pytanko wiecie może jak pobrać nazwę połączenia internetowego tak aby potem ustawić na nim adres IP?

  617. Witam,
    Help please oczywiście . Co jakiś czas wrzuca mi się plik do gałęzi np. MOJPLIK i chciałbym
    mięć podglądacz , który zawierałby nazwe pliku,
    date i czas – oczywiście nie przez dir
    Jacek Szepan

  618. Witam.

    Potrzebuje napisać skryp *.bat który usunie starsze pliki/foldery niż 1 miesiąc.

    drzewko wygląda mniejwięcej tak:
    temp
    |-2009-09-19
    |-2009-08-19
    |-2009-07-19

    skrypt ma wykożystywać tylko i wyłącznie komendy dostępne w win xp.

    Z góry dziękuję za pomoc.

  619. Witam,
    Czy ktoś wie, jakim poleceniem mógłbym oświeżyć windowsowe okno (zamiast F5) ?

    pozdrawiam
    ajdaho

  620. potrzebuje uruchomic ( odtwarzanie i zamkniecie )
    pliku *wav w srodowisku DOS ( cmd , NC )
    - otwiera – odtwarza – zamyka … ale wchodzi w interfejs windowsa – w trakcie wyswietli np. pulpit , nastepnie trzeba na pasku kliknac aby powrocic do programu dosowego .
    ponizsza sciezka zapisu ;
    ! SNDREC32.EXE /play /close f:\exporter\jwexe\EXPORTER.WAV

    brak jakiegos przelacznika , aby pozostac w trakcie odtwarzania w cmd ( dosie ) ?

  621. @jarek
    start /I SNDREC32.EXE /play /close "f:\exporter\jwexe\EXPORTER.WAV"

  622. @ajdaho
    Obawiam się, że to niemożliwe ;/
    Jedyne rozwiązania jakie przychodzą mi do głowy, to napisanie odpowiedniego skryptu w VB, lub w AHK (autohotkey.com). Potrzebne będą polecenia: WinActivate oraz Send{F5}. Dopisać jeszcze kod odpowiedzialny za przyjmowanie zmiennych z wiersza poleceń i całość zapisać do EXE’ka

  623. “# W dniu 2007.10.13 o godz. 09:40, Adam napisał/a:

    Widziałem kilka pytań o skrypt ktory wyszukuje
    pliki i kopiuje znalezione pliki , wczoraj udało mi się taki napisać czego oczywiście nie zrobił bym gdy bym wcześniej uważnie nie prześledził całej strony .
    Skrypt przeszukuje cały komputer i znajduje pliki które zawierają w nazwie podany przez nas ciąg znaków ale radzę wpisywać pełne nazwy plików aby nam połowy dysku nie skopiowało .
    spróbuje wstawić to w formie kodu :

    @echo Podaj nazwe pliku ktory chcesz skopiowac i wcisnij ENTER
    @echo:
    set /p a=%x%
    dir c:\ /s /b |find /i “%a%”>>a.txt
    dir d:\ /s /b |find /i “%a%”>>a.txt
    dir e:\ /s /b |find /i “%a%”>>a.txt
    dir f:\ /s /b |find /i “%a%”>>a.txt
    dir g:\ /s /b |find /i “%a%”>>a.txt
    dir h:\ /s /b |find /i “%a%”>>a.txt
    dir i:\ /s /b |find /i “%a%”>>a.txt
    for /f “delims=” %%i in (a.txt) do copy “%%i”
    del a.txt
    pause>>nul
    exit

    Skrypt skopiuje nam pliki do bierzącego katalogu w którym się znajduje ale można to zmienić wedle uznania”

    Witam “Cytuję komentarz”
    Chciałbym się dowiedzieć jak zmodernizować ten skrypt napisany przez P Adama żeby zamiast kopiować pliki po prostu je wyświetlał tak jak zwykła wyszukiwarka :
    wpisujesz nazwę podaje gdzie się dany plik znajduję czy jest to możliwe ??

  624. Witam
    problem rozwiązany tak więc nie trzeba się wysilać

  625. Tak sobie pomyślałem, że dodam od siebie inny skrypt, który może się komuś przydać.
    Skrypt wypisuje do pliku files.txt wszystkie pliki (wraz z ich pełną ścieżką) utworzone aktualnego dnia w aktualnym katalogi i wszystkich podkatalogach.


    ::Find File By Date v2!
    @echo off
    set tmp=tmp.txt
    :: Wypisuje do pliku files.txt wszystkie pliki (wraz z ich pełną ścieżką) utworzone aktualnego dnia w aktualnym katalogi i wszystkich podkatalogach
    for /f "tokens=3*" %%a in ('dir /a-d /o-d /-c /tc /s ^| find "%DATE%"') do (

    for /f "delims=" %%d in ('dir "%%b" /a-d /s /b') do (

    for /f "tokens=3*" %%g in ('dir "%%d" /a-d /o-d /-c /tc /s ^| find "%DATE%"') do (
    echo %%d>>%tmp%
    )
    )
    )

    :: Filtruje plik %tmp% w celu usunięcia duplikatów wpisów.
    echo. >> files.txt
    for /f "delims=" %%a in (%tmp%) do (
    for /f "tokens=3 delims=:" %%b in ('find /c "%%a" "%CD%\files.txt"') do (
    if %%b EQU 0 (echo %%a >> files.txt)
    )
    )

    del %tmp%

    Pozdrawiam
    Piotrek

  626. dawno temu ‘llelewel’ zamieścił skrypt, który pokazywał aktualny dzień tygodnia. Poniżej przedstawiam inną wersje:
    @echo off
    :: Dzien tygodnia na podstawie daty
    set day=%DATE:~8,2%
    set month=%DATE:~5,2%
    set year=%DATE:~0,4%
    if %day% EQU 09 set day=9
    if %day% EQU 08 set day=8
    if %day% EQU 07 set day=7
    if %day% EQU 06 set day=6
    if %day% EQU 05 set day=5
    if %day% EQU 04 set day=4
    if %day% EQU 03 set day=3
    if %day% EQU 02 set day=2
    if %day% EQU 01 set day=1
    if %month% EQU 09 set month=9
    if %month% EQU 08 set month=8
    if %month% EQU 07 set month=7
    if %month% EQU 06 set month=6
    if %month% EQU 05 set month=5
    if %month% EQU 04 set month=4
    if %month% EQU 03 set month=3
    if %month% EQU 02 set month=2
    if %month% EQU 01 set month=1
    SET /A M=(1+(%month%+9))%%12
    if %M% GTR 10 SET /A year=%year%-1
    SET /A C=%year%/100
    SET /A D=%year%%%100
    SET /A N=(((13*%M%-1)/5)+%D%+(%D%/4)+(%C%/4)+(5*%C%)+%day%)%%7
    if %N% EQU 6 set N=Sobota
    if %N% EQU 5 set N=Piatek
    if %N% EQU 4 set N=Czwartek
    if %N% EQU 3 set N=Sroda
    if %N% EQU 2 set N=Wtorek
    if %N% EQU 1 set N=Poniedzialek
    if %N% EQU 0 set N=Niedziela
    echo rok=%year%
    echo miesiac=%month%
    echo dzien=%day%
    echo.
    echo Dzien: %N%
    pause >nul

    Pozdrawiam
    Piotrek

  627. Niezbo – dzięki wielkie za skrypt :)

  628. mpoam problem przy uruchomieniu komp.pokazuje sie informacjia brak dostepu do C:\WINNT\da.vbs za pomoc BD.

  629. Hej,

    pomozcie prosze jak wynalezc pliki i ew podkatalogi w danym katalogu ktore sa starsze niz np. 5 dni.

    Musze napisac skrypt usuwajacy takie pliki z katalogu.

    Bede bardzo wdzieczny za pomoc.

  630. Witajcie

    Jak zainstalować office 2003 z pliku bat ?
    Tak aby nie podawać klucza, lokalizacji czy elementów do zainstalowania ??

  631. mam pytanie czy istnieje jakies polecenie
    zeby wiersz poleceń odczekał na wykonanie następnego zadania np. kilka sekund

    mam pliki 1.bat 2.bat
    wpisuje to do notatnika
    start 1.bat
    start 2.bat
    zapisuje jako bat i uruchamiam
    chodzi mi o to zeby najpierw zakończyło sie 1.bat a potem zaczęło 2.bat
    z góry dzięki

  632. Witam.Mam problem z odpaleniem skryptu z zewnętrznego nośnika pamięci,a mianowicie chce uruchomić plik,który znajduje się na dysku lokalnym więc piszę:
    Kod:

    @echo off
    start C:\PLIK
    cls

    lecz plik się nie uruchamia.Zaznaczam że ten bat działa odpalany normalnie z dysku.Proszę o pomoc.

  633. Witam help me
    Wszyscy którzy jesteście wstanie pomóc piszcie.
    Potrzebuje stowrzyć skrypt który po uruchomieniu będzie pobierał z sieci wewnętrznej firmowej (domena w firmie i ludki logują się do domeny)adres IP kompa, nazwę komputera no i najważniejsze oprogramowanie jakie jest zainstalowane (system operacyjny i pakiet offica oraz klucze licencyjne na których jest zainstalowane to oprogramowanie)
    Z góry wielkie dzięki za pomoc

  634. do apacz
    możę zapomniałeś o “”

  635. jak widzimy admina nie ma i nie ma kto pomagać szkoda :(

  636. admin jest tylko niestety czasu brak na skrytpy i stronę :(

  637. kozik,niestety to nie to ;(

  638. @kozik
    Usuń ‘start’. Powinno pomóc
    ‘start’ powoduje uruchomienie tych bat’ów niezależnie. Jeżeli zamienisz to na ‘call’ lub – najzwyczajniej nic nie wpiszesz – 2.bat uruchomić się powinien zaraz po 1.bat

    @Apacz
    a litera dysku się zgadza? Ciężko cokolwiek powiedzieć. Jakbyś dał konkretne info: system, dokładna ścieżka, rodzaj pliku – byłoby łatwiej.

    @henryk
    System odwołuje się do pliku, który nie istnieje (??) C:\WINNT\da.vbs
    Jedyne co mi teraz przychodzi do głowy to utworzenie pustego pliku o tej nazwie i rozszerzeniu.

    Pozdrawiam.

  639. wielkie dzięki niezbo ale sam doszłem do tego

  640. Zapomniałem dodać,że ten plik który ma się uruchomić na dysku lokalnym to również skrypt *bat.
    Dopisałem do tego bata,który ma się uruchomić polecenie “pause” i wyświetliła mi się konsola w której tle było “I:\” (czyli w moim wypadku litera zew. nośnika pamięci) a nie jak zwykle “C:\Users\%username&\”.Może to ma jakiś wpływ na ograniczenie wykonywania operacji z zewnętrznych nośników??

  641. @Apacz

    Zrobiłem na plikach:
    run.bat [pulpit]
    @echo off
    echo before test.bat
    call "k:\Nowy folder\test.bat"
    echo after test.bat
    pause

    test.bat
    @echo off
    echo test.bat
    pause

    I wynik był taki:
    >
    before test.bat
    test.bat
    Aby kontynuować, naciśnij dowolny klawisz . . .
    after test.bat
    Aby kontynuować, naciśnij dowolny klawisz . . .
    <
    gdybyś zamiast 'call' wywołał bezpośrednio, to po zakończeniu 'test.bat' nie powróci do run.bat

    Tylko tyle mogę Ci napisać – u mnie wygląda i działa jak należy. Mam nadzieję, że coś trochę pomogłem. Pozdrawiam :)

  642. ja mam takie konkretne pytanie
    mam 2 komputery jeden to WinXp Home oem
    drugi WinXp Pro OEM

    z WinXp home moge się podłaczać na konsolę
    mogę mapować dyski C$ … administracyjne, bez udostepniania

    natomiast łącząc się z z WinXp Pro za diabła nie moge podmapowac dysków C$ ani podłaczyć konsoli należących do WinXp Home mimo że dodałem je w rejestrze i są widoczne w folderach udostepnionych w menadżerze urządzeń

    ki diabeł

    gdy udostęnie folder na WinXp Home to moge mapowac dyski
    ale chciałbym bez udostęniania

  643. Pijawke kolega ma. Podsysa lajza skrycie, a nawet zrodla nie poda…
    http://www.ekursy.pl/typo3/content/index.php?id=92

  644. Artur – dzięki za info. Zaraz piszę do nich.

  645. Siema chce zrobić żart koledze i zrobilem skrypt vbs:
    x = MsgBox(“TROJAN Czy chcesz zainstalować?” ,3+48, “Error discover virus”)
    x = MsgBox(“Wirus został zainstalowany” ,0+48, “Error discover virus”)
    inputbox(“I co teraz zrobisz?”)
    I chciałbym jeszcze dodać żebyplik który bedzie sie znajdować w folderze ze skryptem smile.exe skopiowało mu np na partycje C
    Z gory dziekuje

  646. jest ktos?

  647. niby proste cos a nie wiem bo nie bylo wczesniej potrzeby tego typu
    Chodzi mi o to zeby przy wykonywaniu programu dos-go nie otwieralo sie zadne czarne okno ( program dosowy napisalem w Clipperze na potczciwych dbf-ach i dosc dlugo ” obrabia ” kilkanascie baz w jednym czasie – rekordow setki . Dlatego jego czas ok 5-7 s chce ” czyms ” zakryc i te okno .
    program odpalany z vbs do wlasciwego exe
    WSHShell.Run(“F:\TXT\KREZO.EXE /CLEAR/close “)
    szukam kompilatora do vbs free ( bez komunikatow )

  648. Hej!
    Mam pytanie jak utworzyć skrypt, który z folderu i podfolderów folderu C:\test usuwa tylko te pliki, które mają nazwę p.ini, *.url i feed.rss?
    Dzięki z góry za odpowiedź

  649. A przy okazji jeszcze jedno: jak przenieść pliki o rozszerzeniach .jpg .jpeg i .gif z C:\test\a do C:\test\b?
    Dzięki z góry za odpowiedź

  650. @burtek
    Potrzebujesz pętli ‘for’ z parametrem ‘dir “*.url”‘ w części ‘do’ kopiujesz/usuwasz to co znajdzie się w ‘%%a’
    Wszystkie potrzebne informacje masz na tej stronie ;)
    Pozdrawiam.

  651. @niezbo
    Fakt, nie zauważyłem tego działu “Szuka plików o określonym rozszerzeniu i kopiuje je do wskazanej lokalizacji”. Próbuję jednak połączyć w kupę i wychodzi coś takiego:
    @echo off
    for /f "delims=" %%a in ('dir "c:\users\bartek\desktop\zpd\nowe klipy\import\*" /s/a/b ^| find /i ".url" "picasa.ini" "feed.rss"') do (
    del /f "%%a"
    )

  652. @niezbo
    Fakt, nie zauważyłem tego działu “Szuka plików o określonym rozszerzeniu i kopiuje je do wskazanej lokalizacji”. Próbuję jednak połączyć w kupę i wychodzi coś takiego:
    @echo off
    for /f "delims=" %%a in ('dir "c:\test\*" /s/a/b ^| find /i ".url" "p.ini" "feed.rss"') do (
    del /f "%%a"
    )

  653. a mi to nie pomozecie

  654. Witam,
    Jak wykasować z dysku pliki o określonym rozszerzeniu ale o wielkości większej od określonej. np. jak usunąć avi większe od 100MB?
    Dzięki za pomoc

  655. zal

  656. @Jakub
    Zamiast tracić czas, oraz marnować swoje szare komórki na jakże ambitne “zal” proponuję Ci uruchomić CMD i dopisać ‘/?’ do polecenia ‘copy’. Prześledzić, przeanalizować i poeksperymentować z materiałem na tej stronie. Ja, niestety, w VBA Tobie nie pomogę, pan Piotr z racji braku czasu, zapewne również. Przekopiować pliki z poleceniem ‘copy’ naprawdę nie jest ciężko! A jak sił Ci starczy, to możesz również stworzyć plik autroun.ini.

    @Paweł
    Spróbuj wykorzystać pętlę ‘for’ z argumentem ‘dir /-c’ oraz ‘find’ z wielkością pliku w KB. I nie zapomnij po poleceniu ‘for’ dobrać odpowiedni ‘token’!

    @burtek
    Jeżeli dla kilku plików jednocześnie pętla ‘for’ nie działa spróbuj dla każdego z plików osobno. Mniej wydajne, mało eleganckie, ale za to znacznie prostsze.

    #do Pana Piotra
    Jeżeli moja wypowiedź jest nie na miejscu, to bardzo proszę o zredagowanie/usunięcie.

    Pozdrawiam wszystkich!
    Życzę pogodnych i szczęśliwych świąt, wielu satysfakcjonujących sukcesów oraz wiele cierpliwości! ;)

    PiotrR

  657. Niezbo – odpowiedź jest jak najbardziej na miejscu. Dzięki za pomoc w komentarzach. Niestety ja ciągle mam problem ze znalezieniem czasu nie tylko na pomoc w skryptach ale ogólnie na całą stronę… Nawet dziś rozmawiałem ze znajomym by może coś wspólnie zdziałać. :)

  658. @echo OFF
    set LOGONDRIVE=w:
    set LOGONSHARE=%server%\sieciowy
    set DUMPFILE=%TEMP%\%Administrator%logon.dmp
    net use w: \\server\sieciowy /persistent:yes
    set /P katalog=”Wpisz nazwe katalogu:”
    if exist %katalog% echo %katalog% istnieje! & goto
    MD W:\%katalog%
    xcopy %SYSTEMDRIVE%\”Documents and Settings” /e /d /h /g W:\%katalog%
    pause
    net use w: /d /y

    Backup kont na serwer
    Czy ktoś wie co zrobić żeby kopiował nazwy z polskimi znakami ???
    z Góry Dziękuję

  659. Przepraszam znalazłem wystarczy dodać
    chcp 852
    w skrypcie sorka za zaburzanie :o)

  660. Witam,
    Ja mam problem z formatowaniem zmiennej.
    Opis tego co potrzebuje i mi po części nie działa:
    Potrzebuje zmienić nazwę jakiemuś plikowi. Zmiana jest uzależniona od tego jaki nr ma inny (ostatni) plik. Format nazwy pliku: plik.XXX (gdzie X to nr od 0 do 9)
    ->z katalogu i:\pliki\ wybieram wszystkie nazwy plików i zapisuje je w w pliku lista_tmp.txt
    ->w pętli wybieram ostatni wpis i zapisuje do pliku lista1_tmp.txt (wg mnie będzie to plik z największa liczbą w nazwie)
    ->obcinam z nazwy tego pliku niepotrzebne znaki aby został mi numer
    ->przypisuje zmiennej ten numer i zwiększam go o 1
    ->zapisuje zmienną w pliku lista2_tmp.txt
    ->kasuje niepotrzebne pliki
    ->zmieniam nazwę plikowi korzystając ze zmiennej

    Tu mam problem gdy zmiennej przypisuje numer 001 wtedy zmienna mi go traktuje jako 1. Ja koniecznie potrzebuje zachować format 3 znaków aby było 001.

    Kod w załączeniu:

    @echo off
    dir /A:-D /B I:\pliki\plik.* > lista_tmp.txt
    for /f %%i in (lista_tmp.txt) do echo %%i > lista1_tmp.txt
    FOR /f ” tokens=2 delims=.” %%d in (lista1_tmp.txt) do set /a zm=%%d
    set /a zm=%zm%+1
    echo %zm% > lista2_tmp.txt
    del lista_tmp.txt
    del lista1_tmp.txt

    ::zmiana nazwy pliku
    cd I:\
    ren plik.* plik.%zm%

    Czy możecie mi pomóc??

  661. Witam.Mam pytanie:jak dodać skrypt bat do harmonogramu zadań tak aby uruchomił mi się danego dnia i o danej porze?? z góry dziękuje za pomoc

  662. zainteresuj się komendą AT: http://support.microsoft.com/kb/313565

  663. Dobrze,a co się stanie jeżeli np. ja zaplanuje zadanie na 23:00 a o tej godzinie nie będzie mnie na komputerze??

  664. jeśli będziesz miał właczony komputer to zadanie się wykona

  665. Witam, mam pewien problem, a mianowicie chciałem sobie stworzyć skrypt bat, który po zainstalowaniu Windowsa XP wprowadzał by w nim moje spersonalizowane ustawienia. Praktycznie wszystko już zrobiłem, ale z jedną rzeczą nie mogę sobie dać rady – manipulacja paskiem startu. Zawsze ustawiam go sobie na górze ekranu i włączam autoukrywanie. Można to zrobić ręcznie, ale ciekawi mnie, czy da się to zautomatyzować tak jak myślę. Jeśli ktoś się orientuje gdzie w rejestrze przechowywane są ustawienia paska startu niech da znać, ewentualnie poda linka do jakiegoś opisu.

  666. Witam,
    Jestem początkujący i potrzebuję skryptu który kopiował by plik(np. 1.txt) z katalogu do innego katalogu z jednoczesną zmianą nazwy (dodanie do nazwy pliku bieżącej daty np.1_2010-01-01.txt).Jeżeli chodzi o kopiowanie to sprawa jest prosta, ale jak do tego dołączyć zmianę nazwy pliku (dodanie do nazwy bieżącej daty czyli %date: ~3,10%).
    prośba o pomoc

  667. Już sobie poradziłem :P
    sorki za zaśmiecanie

  668. Seed – chętnie poznamy rozwiązanie :) Pochwal się ;)

  669. Prosze o pomoc
    1.napisz skrypt ktory wylancza komputer o adresach od 192.164.3.10 do 192.164.3.20 przy pomocy petli for

  670. Mam pytanie: Czy ta się napisać skrypt który udostępni mój dysk do internetu??? Jeśli tak to prosiłbym o pomoc..

  671. Już sobie poradziłem z udostępnieniem ale nie wiem jak udostępnić cały dysk a nie konkretny folder.Polecenie net share Nazwa=”D:\”*”" nie działa.

  672. Jak zmienić nazwę komputera poprzez wiersz poleceń,bo jakoś nie mogę sobie z tym poradzić ;p.Z góry dzięki za pomoc.

  673. Hej

    Ta komenda “md %date:~3,4%” nie dziala pod Win2003 a pod Win2008 dziala.
    Jak ja napisac aby pod win2003 dzialala ?
    Pod win2003 jest polecenie MKDIR

    Adrian

  674. Czy ktoś może mi pomóc w sprawie komunikatora
    ????? Nie wiem jak ale pisze mi, że wysłano wiadomość a kolega tego nie otrzymuje. jak sie tym posługiwać HELP!!!

  675. włącz usługę Posłaniec

  676. witam czy ktoś ze zgromadzonych wie może czy da się napisać .bat aby robił print screen co jakiś okres czasu i zapisywał na dysk jako bmp lub jpg

  677. test

  678. ludzie help!!! zrobiłem ten niby komunikator wszystko cacy… troche go ulepszyłem… ale jak chce napisać 2 wyrazy rozłączone spacją to mi go zamyka >> oto kod.

    @echo off
    cls
    net start POSťANIEC
    pause
    cls
    echo Wyslij wiadomosc

    :: Poniżej podajemy uzytkownika, nazwę komputera w sieci lub jego adres IP

    set /p u=Nazwa komputera:

    :: Poniżej podajemy wiadomość

    :WIADOMOSC

    set /p w=Wiadomosc:

    if %w%==end1 goto end

    net send %u% %w%
    cls

    echo %w% >> ArchiwumX.txt

    goto WIADOMOSC
    :end
    net stop POSťANIEC
    pause

    HELPING!!!!PLISSSSSSSSSSSSS

  679. mam problem… robię plik o rozszerzeniu .vbs w notatniku
    mam już prawie wszystko ale nie wiem jaką mam komendę wpisać żeby otwierał okreslony plik .exe proszę o pomoc (prosił bym o bardzo jasne wyjaśnienie. ponieważ jeszcze niezabardzo to rozumiem… z góry thanks..

  680. wpisz to


    Dim oShell
    Set oShell = CreateObjec("Shell.Application")
    oShell.Open("C:\twoj_program.exe")

    Tam gdzie twoj program dajesz ścieżke
    np:
    C:\Windows\hahaha.exe

  681. Pytanko: jak zrobić skrypt (dowolny, bat/cmd/vbs) opróżniający kosz?

  682. Witam, jak zrobić skrypt aby można było zatrzymać odpowiednią usługę w Windows XP a następnie ją uruchomić(zrestartować).

  683. Daroo – polecenia: net start i net stop

  684. Pomoże mi ktoś?

  685. @burtek:

    1. Wyszukaj: “Empty Recycle Bin 1.00″
    2.
    ATTRIB %systemdrive%\RECYCLER\* -R -S -H /S /D
    RD %systemdrive%\RECYCLER /S /Q
    Po usunięciu RECYCLER folder pokaże się ponownie przy usunięciu kolejnego pliku.
    RECYCLER oraz RECYCLED to te same foldery, lecz istniejące w różnych systemach plików, odpowiednio NTFS oraz FAT.

  686. Dzięki wielkie

  687. TEMAT: Plik BAT zmieniający treść pliku txt!

    Witam! jak zbudować plik .bat aby zmieniał zawartość wszystkich plików tekstowych znajdujących się w jednym folderze. Ważne aby zamieniał w tekście jednorazowo kilka fraz:
    - zamień frazę “rower” na “drzewo”
    - zamień frazę “owoc” na “laptop”

    Taki plik .bat ułatwiłby mi prace. Do tej pory musiałem korzystać z edytorów tekstowych i korzystając z funkcji znajdź/zamień. Jest to żmudne gdyż kryteria muszę zmieniać pojedynczo. Będę ogromnie wdzięczny za pomoc.

  688. witam dopiero zaczynam zabawe z tego typu plikami wiec pytam: czy istnieje mozliwosc aby plik byl uruchamiany i wykonywal przypisane mu funkcje automatycznie o konkretnej godzinie kazdego dnia lub co jakis czas bez wczesniejszego uruchamiania go?

  689. Czesc, mam prosbe. Prosze o wskazowki lub gotowy skrypcik ktory mialby nakladac restrykcje na sciaganie plikow (roznych) z internetu cos jak net limiter, ale bez wyszczegolnienia. Wlaczam to moc lacza spada do 1/4 na przyklad
    Dziekuje z gory
    Paweł

  690. chcialbym wyciagnac z pliku tekstowego informacje (najlepiej regexem) lub w inny sposob a potem umiesic ta informacje w nazwie pliku
    i teraz przydaloby sie to uruchomic w petli dla wielu plikow

  691. Mam pytanko:Czy można wysłać plik *txt za pomocą bata nie używając do tego żadnej aplikacji zewnętrznej??
    Wiem że jest polecenie FTP ale jakoś mi nie działa tzn. wysyła mi plik i dostaje go na ftpku ale ma on rozmiar 0 kb. Proszę o pomoc.

  692. Witam
    czy wiecie jak plikiem bat lub vbs pobrać coś ze strony www jakiś plik na serwerze??Nie z ftp, ewntualnie z ftp ale zabezpieczonego użytkownikiem i hasłem może proste ale nie znalazłem nic poza pobraniem z ftp anonimowo

  693. Jak stworzyć listę plików bez rozszerzeń?
    lub
    jak zmienić masowo nazwy kilku plików aby zmienić ich rozszerzenie.

  694. Witam, mam 1 pytanko czy przez skrypt batcha można zmienić stronę startową w przeglądarkach:
    -mozilla firefox
    -opera
    -google chrome
    głownie zależy mi na Firerfoxie
    Z góry dziękuję, i pozdrawiam!

  695. nie wiem czy o to Ci Bartek chodziło:

    @echo off
    ren C:\….\plik.xxx plik.twojerozszerzenie >> lista plikow.txt

    i tak z wszystkimi plikami, ktorym chcesz zmienic rozszerzenie.

    lub…

    @echo off
    ren C:\….\*.xxx plik%random%.twojerozszerzenie >> lista plikow.txt

  696. czesc, po 1. to moj pierwszy wpis i chcialem napisac ze to chyba najlepsza strona dotyczaca plikow wsadowych jaka znalazlem w necie.

    po 2. mam problem do rozwiazania i o ile wiem jak sie za niego zabrac to nie wiem jak go skonczyc :P

    mam plik 1.txt w ktorym znajduja se dane w linijkach pokolei np. piotr, ania, waldek
    mam plik 2.txt w ktorym znajduje sie tylko imie ania. chcialbym aby cmd lub vb (najlepiej jednak cmd – bo potem chcialbym go zabrac pod linuxa na winconsole) skasowal z pliku 1.txt linijke zawierajaca slowo waldek. niby proste bo wyszukiwac to ja umiem ale kazac mu skasowac linijke juz nie bardzo, z gory dzieki za podpowiedz :)

    pozdrawiam.
    vert.

  697. nadal mysle nad rozwiązaniem pomyslu zawartego powyzej (nie jestem pewienm czy istnieje mozliwoisc kasowania zawartosci pliku w dosie), a gdyby skrypt skopiowal cala zawartosc pliku 1.txt za wyjatkiem wartosci zawartej w pliku 2.txt?

  698. Witam
    Wie ktoś z was może czy jest jakiś skrypt który by wysyłał określone pliki z gg na jakiś inny nr gg.
    Z góry dzięki za pomoc. :D

  699. Witam.
    Mam takie pytanie – potrzebuję skrypt, który wykorzystuje datę z dnia następnego. Skleciłem takie coś:

    set miesiac=%date:~5,2%
    set /a dzien=%date:~8,2%
    set /a jutro=dzien+1
    set zmienna=%miesiac%%jutro%

    I wszystko byłoby OK, gdyby nie było ostatniego dnia miesiąca ;) Jak to zrobić, żeby w dniu 31 marca skrypt przypisał pod zmienną miesiąc: 04 a pod zmienną dzień: 01 ?

  700. Pytanie – czy spotkal się ktoś z problemem
    ntvdm.exe ( zajętosc wydajnosci procesora ) w XP przy programach 16 bitowych , gdzie cmd.exe pali ? Jak poleceniami i jakimi
    po wykonaniu określonego programu wsadowo czy poprzez scrypt vbs zamykać uruchomione procesy ? Procesów ntvdm.exe tworzy się sporo a w sumie wystarczy jeden aby wydajnosc procka pochłoneła 90 % – i niestety wtedy już komp ” zamulony ”
    Krótko – jak ma wyglądać napisana skladnia poleceń , aby po wykonaniu programu zamknąć proces ( lub ograniczyc ) ntvdm.exe ?
    Może ktoś “ćwiczył ” w tym temacie i znalazł skuteczne lekarstwo ?
    Jakby co to jest niby ” stary ” command ale
    przydatny .

  701. a nie chodzi tu o ręczne MENEDZER ZADAN wykonanie zamkniecia procesu – chodzi o polecenia , kod napisania programowego zamykania , ktore byloby dopisywane
    na koncu programu wykonywalnego .

  702. Wie ktoś może jak zmienić stronę startową w firerfoxie przez cmd

  703. witam.
    Mam dwa pytania:
    1.Może ktoś wie jak udostępnić folder z lini poleceń?
    2.Jak dodać klucz do rejestru z lini poleceń,wiem że trzeba użyć komendy REG ADD.Ja robie to tak:
    REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList /v username /t REG_DWORD /d 0
    Ale zwraca mi błąd, za dużo parametrów lini poleceń.Ewentualnie zna ktoś inny sposób by ukryć użytkownika na ekranie logowania.

  704. @paweł
    ad.1 zainteresuj się poleceniem NET SHARE
    ad.2 spróbuj klucz HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList wziąć w cudzysłów.
    Pozdrawiam

  705. Temat skryptów w *.vbs
    Szukam konkretnych sprawdzonych przykładów
    z użciem fyunkcji “IF” , “Else , “Do while”
    Np. JAK ZAPISAC menu wyboru programów w vbs – funkcje + jakas prosta oprawa , inne … np
    szukanie okreslonego pliku i jesli znajdzie
    ma uruchomic okreslone funkcje programu
    jesli nie inne pójdzie dalej do nastepnych .
    Coś w tym rodzaju
    baza=’dane.dbf’
    if file “baza.dbf”
    run …. jakis podprogram
    endif
    Potrzebuje ” namiar ” na pobranie takich wzorcowych sprawdzonych przykladow w vbs lub js , aby wykonac ” nakladki ” graficzne
    na inne programy .
    Moze ktos dysponuje takim wzorcowym archiwum ?

    do

  706. Witam potrzebuje skryptu BAT, który wyszukuje pliki większe od 10MB, a mniejsze od 50MB, a następnie daje to do *.txt.
    (Część szukająca plików > nazwa.txt Tyle mam tej pierwszej części mi brak. Próbuje to zrobić już od jakiegoś czasu lecz mi nie wychodzi. Muszę to mieć na jutro rano ;/. Proszę o pomoc i dziękuję.

  707. mam problem… mianowicie jak porównać dwie liczby, i jeżeli pierwsza liczba jest większa od drugiej to wykonuje się tworzenie katalogu

    ktoś pomoże ?

  708. @Daniel
    @echo off
    ::
    rem a - rozmiar pliku
    rem b - nazwa pliku
    ::
    set /A min=10*1024
    set /A max=50*1024
    ::
    for /f "tokens=3,4" %%a in ('dir /-c /a-d /s') do (
    if %%a GEQ %min% (
    if %%a LEQ %max% echo %%a %%b >> files_%min%-%max%.txt
    )
    )

    Jest tylko 1 mały problem
    do wyniku zostanie dodana wartość ze ‘stopki’
    NP:
    4 plik(ów) 7885 bajtów
    14 katalog(ów) 1999822848 bajtów wolnych
    LUB
    1 plik(ów) 292952 bajtów

  709. @marcin
    EQU – równe
    NEQ – nie równe
    LSS – mniejsze niż
    LEQ – mniejsze niż lub równe
    GTR – większe niż
    GEQ – większe niż lub równe
    @echo off
    set /A n1=50
    set /A n2=19
    if %n1% GTR %n2% MD Folder

  710. @Niezbo

    dzięki:)

    a da się zrobić tak żeby “n2″ była zmienną pobieraną z pliku txt, którego zawartość jest np taka:
    14
    40
    16
    22
    ..

    i “n2″ była inną liczbą po każdym obrocie pętli ?

  711. Oczywiście.
    @echo off
    setlocal enabledelayedexpansion
    SET /A n2=0
    for /f %%a in (numbers.txt) do (
    SET /A n2=%%a
    ECHO !n2!
    )
    pause
    endlocal

    “setlocal enabledelayedexpansion” potrzebny jest by na bieżąco zmieniać wartość “n2″. Teraz gdybyś chciał połączyć oba skrypty, wyglądałoby to tak:
    @echo off
    setlocal enabledelayedexpansion
    set /A n1=50
    SET /A n2=0
    for /f %%a in (numbers.txt) do (
    SET /A n2=%%a
    if %n1% GTR !n2! MD Folder!n2!
    )
    endlocal

    Skrypt utworzy tyle folderów ile liczb było mniejszych od '50' i o nazwach zakończonych tymi liczbami.
    Oczywiście "setlocal enabledelayedexpansion" można pominąć, co w wyniku końcowy znacząco zmniejsza skrypt:
    @echo off
    set /A n1=50
    for /f %%a in (numbers.txt) do (
    if %n1% GTR %%a MD Folder%%a
    )

    Zamieszczam obie wersje na wypadek, gdyby “setlocal” okazał się użyteczny i potrzebny oraz dla przykładu jego wykorzystania.
    Pozdrawiam.

  712. trudno mi tak po prośbie, lecz nie wiem jak rozwiązać kolejną zagłostkę… mianowicie po wykonaniu pętli
    for /f %%a in (numbers.txt) do (
    SET /A n2=%%a
    if %n1% GTR !n2! MD Folder!n2!
    )

    zostanie usunięta pierwsza wartość w pliku numbers.txt

  713. Założenie jest takie, że przepiszemy zawartość pliku z pominięciem danego wiersza. W tym przypadku pierwszego. Potrzebna jest nam pętla, która wyliczy ilość wierszy w pliku (nie policzy pustych wieszy!!), a w trakcie wyliczania będzie przepisywać wiersze do nawego pliku z pominiąciem zadanego numeru wiersza (“line”).
    @echo off
    setlocal enabledelayedexpansion
    set /A count=0
    set /A line=1
    for /f %%a in (numbers.txt) do (
    SET /A count=!count!+1
    if !count! NEQ %line% echo %%a >> new_numbers.txt
    )
    endlocal

  714. hmmm może nakreślę bardziej o co mi chodzi. Dzięki Tobie uzyskałem już taką wersje swojego skryptu:

    @echo off

    setlocal enabledelayedexpansion
    set data=%date:~0,4%%date:~5,2%%date:~8,2%
    set data2=0

    for /f %%a in (data.txt) do (
    set data2=%%a
    if %data% GTR !data2! call skrpt.bat
    )
    pause

    teraz potrzebuje aby po pozytywnym porównaniu w następnym obrocie pętli pod uwagę była brana druga wartość z data.txt no a potem zaś trzecia i tak dalej:) myślałem właśnie żeby zawsze pierwszy wiersz w data.txt się usuwał ale jak zmienię new_data.txt na data.txt a wcześniej to jeszcze poprzedzę komendą del data.txt to sprowadzi to plik data.txt do niechcianej zawartości ;/

  715. @marcin
    Przyznam szczerze, że nie rozumiem problemu… dla mnie go nie ma. Wykonując skrypt który podałeś@echo off
    setlocal enabledelayedexpansion
    set data=%date:~0,4%%date:~5,2%%date:~8,2%
    set data2=0
    for /f %%a in (data.txt) do (
    set data2=%%a
    if %data% GTR !data2! call skrpt.bat %%a
    )
    pause

    gdzie skrpt.bat to @echo off
    echo TEST BAT %1
    pause>nul

    a data.txt to:20100101
    20100202
    20100303
    20100404
    20100505
    20100606
    20100707
    20100808
    20100101
    20100202
    20100303
    20100404
    20100505
    20100606

    dostajesz wynik w postaciTEST BAT 20100101
    TEST BAT 20100202
    TEST BAT 20100303
    TEST BAT 20100404
    TEST BAT 20100101
    TEST BAT 20100202
    TEST BAT 20100303
    TEST BAT 20100404
    Innymi słowy, po każdym pozytywnym porównaniu, uruchamiany jest zewnętrzny plik “skrypt.bat”, a ilość tych porównań równa jest ilości dat zawartych w pliku data.txt. Wg. mnie, Twoja wersja jest jak najbardziej poprawna!

  716. data.txt
    [code]
    20100418
    20100502
    20100516
    20100530
    20100613
    20100627
    20100711
    20100725
    [/code]

    ten skrypt był by dany do autostartu systemu, więc zawsze następowało by porównanie daty systemowej z datą z pliku .txt . Jeżeli data systemowa będzie 20100419 czyli większa od daty w pierwszym wierszu pliku data.txt (20100418), następuje pozytywne wykonanie pętli i wywołanie innego skryptu. Chodzi o to, że: 20, 21, 22, 23 … i każdego innego dnia ten skrypt by się wykonywał bo aktualna data zawsze była by porównywana wpierw do 20100418, czyli pierwszego wiersza w pliku.txt. Co jest właśnie skutkiem nie pożądanym:)
    Po pozytywnym porównaniu
    [code]
    if 20100419 > 20100418 call skrypt.bat
    [/code]
    wartośc %data2% zmienia się na drugą z kolei itd, czyli teraz porównywał by:
    [code]
    if 20100420 > 20100502 call skrypt.bat
    [/code]
    Dzięki temu dostanę prosty scheduler który będzie wykonywał mi zadaną czynność raz na dwa tygodnie. Może zapytasz się czemu nie zrobię tego w schedulerze systemowym:) otóż w systemowym harmonogramie zadań nie ma opcji uruchom przy najbliższym starcie systemu, a darmowych programów na Google posiadających ową funkcje nie znalazłem..

  717. heh:) już doszedłem do tego ;)
    w pierwszym skrypcie do funkcji if oddaje 2 razy “call”

    for /f %%a in (data.txt) do (
    set data2=%%a
    if %data% GTR !data2! call skrpt.bat & call usunięcie_pierwszego_wiersza_w_data.txt.bat
    )

    a do drugiego skryptu który ma właśnie usuwać ten pierwszy wiersz w pliku.txt dodaje po pętli komendy:

    del data.txt
    rename new_data.txt data.txt

    Jak dla mnie teraz chyba wszystko działa tak jak planowałem:) Dzięki Niezbo za pomoc ;)

  718. W pliku .txt znajduje się ciąg znaków ;X który chciałbym usunąć. Czy jest możliwość usunięcia skryptem .bat?

  719. Witam. Mam do Was prośbę o napisanie mi programiku jeśli to nie sprawi wam problemu a pewnie przyjemność :) Chodzi mi o to żeby ten program wyszukał na kompie 2 pliki których nazwę znam i w razie zmiany nazwy jeśli jest taka możliwość to może po rozmiarze co do bajta lub rozszerzeniu je znalazł bo mam u siebie na komputerze kopie tego. Wskazał mi ich lokalizacje żebym mogła sprawdzić czy to te pliki i może od razu usunięcia tych plików.
    A może teraz powiem do czego mi to. Jest to zdjęcie i filmik na którym że tak powiem się ostro zbłaźniłam delikatnie ująwszy to i nie chce żeby to dalej gdzieś poszło. “Kolega” który to ma powiedział że nie będzie tego wysyłał ale ja wolałabym wpaść do niego i usunąć to żeby go nie korciło. Mam nadzieje że ktoś podejdzie do tego na poważnie i mi pomoże. Bo ja zanim się nie nauczę tych wszystkich komend żeby samemu coś takiego napisać. Czekam na szybką odp i z góry wielkie dzięki. Aha i on ma sevena i xp jeśli to ma jakieś znaczenie. Czekam na pomoc

  720. Witam.Mam pytanie czy jest jakiś sposób żeby odinstalować dowolny program przez cmd??

  721. Witam.Mam pytanie czy jest jakiś sposób żeby odinstalować dowolny program przez wirsz poleceń?

  722. Może dla kogoś to będzie banalne ale nie stety nie dla mnie :( a więc do rzeczy:
    mam taki skrypt:
    @echo off
    md d:\%date:~0,10%-%time:~0,2%-%time:~3,2%
    xcopy C:\miko\*.* d:\%date:~0,10%-%time:~0,2%-%time:~3,2%
    pause

    i chcę aby był uruchamiany przy zakończeniu pracy komputera, ale żeby ten skrypt nie zamykał pracy komp…

  723. Witam
    Czy mógłby ktoś z was napisac mi skrypt który by rozłączał mi neta połączał i wchodził na jakąś stronkę np http://www.wp.pl
    Z góry wielkie dzięki. :D
    Możecie też pisac na gg 21697323

  724. Szukam rozwiązania , które odpali mi okręślony program zawsze o jednej godzinie w ciagu doby – harmonogram zadań nie wchodzi w grę ..

  725. Czy wie ktoś gdzie w tym skrypcie popełniłem błąd:

    @echo off
    set /p czas=”podaj godzine i minute:”
    time /t
    if “time /t”==%czas% goto 1
    if not “time /t”==%czas% exit
    :1
    echo udalo sie
    pause
    exit

  726. Witam, Czy poprzez plik wsadowy, można np:
    ściągnąć jakiś obrazek (jeśli ma się do niego bezpośredni link), lub mając link od razu np: ustawić obrazek jako tło pulpitu?

    Czekam na odpowiedź, z góry dziękuję

  727. Gangsta – można ściągnąć dowolny plik. Zainteresuj się programem: wget. Zajrzyj na mój projekt: wGetEASY (http://www.promanski.info/?page_id=226). Tam masz kawałek skryptu, w którego źródle znajdziesz sposób na pobranie plików.

  728. Witam,
    Potrzebuję pilnej pomocy, potrzebuje prosty skrypt który bedzie skanował sieć lokalną i z komputerów będzie wyciągła nazwe komputera, IP, zalogowaną osobę oraz najważniejsze wielkość pliku *.pst
    Prosze o pilną odpowiedź z góry wielkie dzieki za wsparcie
    GG 7237111 lub nemo991(małpa)wp.pl

  729. Witam,mam problem a konkretnie chce dodać skrypt BAT do skryptów logowania ale nie za pomocą GPO tylko przez wiersz poleceń.Czy jest to możliwe??

  730. Danton – dodaj batcha do Autostartu.

  731. No tak tylko o ile się orientuje to jeżeli dodam go jako skrypt logowania to będzie on pracował w trybie “cichym” a jak dodam do autostartu to będę widział “czarny ekran”.(A i od razu mówię że skrypt VBS ukrywający wykonywanie BATa nie wchodzi w grę ;p)

  732. Witam!
    Potrzebuję za pomocą skryptu usunąć całą zawartość folderu włącznie z podfolderami
    polecenie

    del /f /q

    kasuje tylko pliki natomiast pozostawia podfoldery.
    Kombinowałem już na wiele sposobów ale niestety nie znalazłem rozwiązania.

    Usunięcie całego foldery głównego przez rmdir i zakładanie go na nowo z tą samą nazwą niestety nie rozwiąże problemu gdyż nowy folder tworzy się domyślnymi uprawnieniami do niego.

    Z góry dzięki za podpowiedź.

  733. A tak od siebie skrypt pozwalający na zmianę ustawień sieciowych będąc zalogowanym na koncie usera podając hasło administratora:
    Pierwszy plik start.bat wywołuje plik zmianasiec.bat jako użytkownik administrator i prosi o podanie hasła
    @runas /user:administrator c:/zmianasiec.bat
    W drugim pliku:
    @chcp 1250
    @netsh interface ip set address "Połączenie Lokalne" static 192.168.0.31 255.255.255.0 192.168.0.150 1
    @"C:\Program Files\Internet Explorer\iexplore.exe"
    @netsh interface ip set address "Połączenie Lokalne" static 192.168.0.31 255.255.255.0 0.0.0.0 1

    1) Zmieniamy stronę kodową aby przyjęło nam polskie litery w nazwie “Połączenie sieciowe”
    2) Zmieniamy ustawienia sieciowe podając bramę.
    3) uruchamiamy internet explorer
    4) surfujemy po internecie
    5) po zamknięciu IE ustawienia sieciowe ustawiają się bez podanej bramy.

    Szybki sposób na połączenie z internetem bez wylogowywania się i zamykania wszystkich otwartych dokumentów usera.

  734. Nie wiem w jakiej dokładnie jesteś sytuacji ale może usuniesz jednak ten cały katalog Rmdir’em i potem stworzysz nowy i nadasz mu uprawnienia poleceniem icacls lub cacls (zależy od systemu)?

  735. System to W2K8.

    Lista uprawnień jest dość długa i może być zmienna dlatego wolałbym jej nie ruszać.
    Chociaż jest to na pewno jeden ze sposobów, który biorę pod uwagę.

    Gdyby ktoś miał jakiś prostszy sposób to proszę o info!

  736. Rafał: Spróbuj tego:

    @echo off
    pushd C:\Test
    del /q *.*
    for /f "tokens=*" %i in ('dir /B') do rd /s /q "%i"
    popd

    C:\Test to katalog z którego usuwasz – najpierw pliki (del /q) a potem katalogi for /f ….

  737. Witam !
    Potrzebuję skrypt, który w pliku .txt wpisze zamiast string-u PLXXC nazwę stacji XP na której jest uruchomiony skrypt.

    Z góry dziękuje.

  738. Mam pytanie.Co źle zrobiłem w tym skrypcie??
    @echo off
    cd C:\Logs1
    ping http://www.onet.pl >>C:\Logs1\testing.txt
    setlocal
    dir C:\Logs1\testing.txt |find /i “TTL”
    IF errorlevel 1 goto jest
    IF errorlevel 0 goto nie
    :jest
    hidec.exe “C:\Logs1\Start1″
    :nie
    hidec.exe “C:\Logs1\CC”
    Od razu mówię że program hidec.exe jest w tym samym folderze co ten BAT.Z góry dzięki za pomoc.

  739. Witam!
    Działa w takiej postaci (z dwoma %)

    @echo off
    pushd "C:\Test"
    del /q *.*
    for /f "tokens=*" %%i in ('dir /b') do @rmdir /q /s "%%i"
    popd

  740. Panowie ponawiam moją prośbę o pomoc z tym skryptem:
    @echo on
    cd C:\Logs1
    ping http://www.onet.pl >> C:\Logs1\testing.txt
    dir C:\Logs1\testing.txt |find /i “TTL” >nul
    IF %errorlevel% EQU 0 goto tak
    IF %errorlevel% EQU 1 goto nie
    :tak
    hidec.exe “C:\Logs1\Start1.bat”
    hidec.exe “C:\Logs1\SSSS.bat”
    goto moze
    :nie
    hidec.exe “C:\Logs1\Start2.bat”
    goto moze
    :moze
    exit
    Moim celem w tym skrypcie jest sprawdzenie czy działa internet.Jeżeli działa to ma odpalić Start1 i SSSS a jeśli nie to plik START2.Bardzo proszę o pomoc.Z góry dzięki ;D

  741. Witam,
    Mam takie zadanie, muszę na komputerze podłączonym do domeny wymusić codzienną zmianę hasła przy czym żadne hasło nie może się powtórzyć w ciągu roku. Do tego mam wygenerować hasła na cały rok w osobnym pliku a skrypt musiałby sprawdzać czy dane hasło nie zostało już użyte i czy jest właściwe(8 znaków, małe/duże litery, cyfry, znaki specjalne).
    Proszę o podpowiedź jak się do tego zabrać, dodam że do tej pory nie miałem do czynienia ze skryptami.

    Pozdrawiam i z góry dzięki

  742. Witam.

    Mam skrypcik do exportu z oracle, który mówi:

    exp user/pass_user@baza parfile=exp1.txt
    exp admin/pass_admin@baza parfile=exp2.txt

    i dwa pliki zewnętrzne txt:
    exp1.txt
    BUFFER=4096
    FILE=EXPDAT.DMP
    FULL=n
    GRANTS=y
    rows=y
    INDEXES=Y
    COMPRESS=y

    exp2.txt
    FILE=EXPDATADMIN.DMP
    full=y
    rows=n
    GRANTS=y
    INDEXES=y
    COMPRESS=y

    Jak mogę te dwa pliki txt wciągnąć do skryptu, żeby tych informacji nie musiał brać z zewnątrz?

  743. Witam

    Pozwalam sobie zgłosić się po pomoc do ekspertów

    Czy jest “odważny” (ja jestem analfabeta) aby przerobić makro dla excel na skrypt powłoki?

    podobno można link do maka poniżej

    http://www.excelforum.pl/topics3/wczytanie-nazwy-pliku-z-folderu-do-arkusza-vt15743.htm

    mogę też podesłać plik excel na e-mail

    Dzięki z gór za jakiekolwiek zainteresowanie w tym temacie
    Grzyyy

  744. Cześć chciałbym się dowiedzieć jak zrobić plik bat który kopiuje pliki z pendrive do folderu docelowego(np c:\nowy folder).Problem tkwi w tym ze chciałbym żeby odnajdowało pendrive nie z literki np (L:\) tylko z nazwy (Np Kacper)

  745. witam jak usunąć za pomocą skryptu z pliku tekstowego (log) znaki [ ]

    usuwałem ” za pomocą poniższego skryptu ale na ww znaki nie działa wywala błąd

    FOR /F “usebackq delims=” %%G IN (“2010.05.1.log”) DO (
    Set “line=%%G” & echo !line:”=!
    )>>”2.ban”

    z góry dziękuje

  746. Mam prośbę o pomoc w utworzeniu skryptu, który by bez otwierania okna hyperterminala (Tera Term) wysyłał komęde AT_OGPS=2 do portu COM5. Z góry dziękuje

  747. Witam mam prośbę…
    Mianowicie
    Jak zrobić skrypt który będzie wyszukiwał dany plik w całym komputerze a gdy go znajdzie to skopiuje go do wybranego folderu…
    Proszę również o objasnienie

  748. Wiem że zaczeły sie wakacje ale naprawde nikt znający się narzeczy tu nie zagląda? Poradziłem sobie z powyższym skryptem tworząc macro dla ttermpro OGPS.ttl
    sendln ‘AT_OGPS=2′
    wait ‘OK’
    i uruchamiając ttermpro
    start ttermpro.exe /C=5 /M=OGPS.ttl /V
    Teraz moje nstępne pytanie, jak mogę zmieniać ikone na pulpicie
    jeżeli ‘AT_OGPS=2′ ikona1
    jeżeli ‘AT_OGPS=0′ ikona2
    mój system to win7 starter. Prosze o pomoc

  749. Witam

    Potrzebuję skryptu, który spowoduje zerwanie połączeń sieciowych (np. zalogowanie do danego serwera), dzieki czemu nie bedzie potrzebne wylogowanie sie z widowasa.

  750. Witam

    Potrzebuje skryptu ktory zmieni adres IP internetu.. Tak samo jak sie rozlacza neta i polacza to sie zmienia IP to chce miec taki sam wynik tylko bez rozlaczania neta. Jak cos to piszcie na gg 18513363 ..
    Z gory wielkie dzieki. :D

  751. mam pliki (przykładowo)
    a.mp3
    b.mp3
    c.mp3
    a w pliku tekstowym 1.txt nazwy
    raz
    dwa
    trzy Kod:
    @echo off
    cd /d

    for /f “delims=” %%i in (1.txt) do ren *.mp3 %%i.mp3

    exit

    ten skryp co prawda zamienia na
    raz.mp3
    dwa.mp3
    trzy.mp3
    tylko ja chce żeby nazwy były zmieniane według daty utworzenia
    ___________data utworzenia
    raz.mp3_____8.03.10
    dwa.mp3____9.03.10
    trzy.mp3____10.03.10
    jak ktos wie jak to zrobić w cmd bat vbs lub program z opcją konsoli

  752. Tutaj ludzie śpią szukajcie pomocy na innym forum.
    Pozdro
    narwa

  753. zamiast nazwa_twojego_skryptu.bat w:
    Dim oShell
    Set oShell = WScript.CreateObject (“WSCript.shell”)
    oShell.run “cmd /C nazwa_twojego_skryptu.bat”,0
    Set oShell = Nothing

    można wpisać jakąś komendę lub zestaw komend ale komendy trzeba oddzielać znakiem: &

  754. Witam,
    jak napisać skrypt który będzie pobierał IP z listy zapisanej w notatniku pingował się i zapisywał wynik do pliku.

    i drugi skrypt jak napisać sktypt który będzie również pobierał z pliku IP + port , uruchamiał telnet próbował sięzatelnetować wynik zapisuje do pliku? Potrzebuje przeskanować sporą ilość postów jednak nie mogę używaż żadnego rodzaju skanerów.

    Pozdrawiam.

  755. Słuchajta!

    Jak napisać skrypt, który codziennie kliknie w jeden button na jednej stronie internetowej. Co dziennie o podobnej porze wykona jedno kliknięcie…

    Macie jakieś pomysły??? Bo ja już wysiadam:(

  756. Witam,

    czy temat jest jeszcze aktualny?
    czy to była/jest jednorazowa akcja?

    kto będzie używał tego skryptu?

    Pozdro.

  757. poprzedni pytanka były do:
    W dniu 2010.08.19 o godz. 11:56, Łukasz napisał/a:

  758. Odpowiedź do: W dniu 2010.09.08 o godz. 20:51, Tyrtek napisał/a:

    Witaj,

    Spróbuj poszukać w googlach AUTOHOTKEY.
    Poczytać i napisać skrypt lub ew. zrobić makro.
    Takie skrypt makro można dodać do harmonogramu.

    Jak się uda proszę o info na GG 1428234.

    Pozdro, Kiler_OS

  759. … można też w samym skrypcie zdefiniować godzinę uruchomienia danego kliknięcia.

  760. można w tym skrypcie dopisać aby kopiował pliki wększe/ mniejsze niż…kb?

    @echo off
    md “d:\Nowy Folder\”
    for /f “delims=” %%a in (‘dir “c:\*.txt” /s/a/b ^| find /i “.txt”‘) do (
    copy “%%a” “d:\Nowy Folder\”
    )

  761. Witam.Mam problem.Chce wyciągnąc kawałek tekstu z pliku tekstowego i zapisać go do osobnego pliku.No więc użyłem polecenia findstr:
    @echo off
    findstr “teskst” C:\plik >>C:\plik1

    Wszystko działa tylko że problem tkwi w tym że polecenie findstr oddziela mi znaki dodatkowymi spacjami a mi zależy aby teks był w nienaruszonym stanie. Da się coś z tym zrobić ?? Może jest jakiś format który nie widzi spacji?? Z góry dzięki za pomoc.

    PS. Testowałem polecenie FIND i owszem,ono nie oddziela spacjami tekstu ale za to nadpisuje nazwę pliku na początku znalezionego tekstu.

  762. Witam
    Jestem całkowitym laikiem w temacie pisania skryptów. Potrzebuję napisać skrypt który uruchomi pewien program (program się wykona) a następnie po odliczeniu np. 60 sekund. Proces tego programu zostanie zabity, właśnie przez skrypt. Generalnie chodzi tylko o pomoc w odliczaniu.

    Dzięki Ugo21

  763. Ugo21:
    start program
    timeout 60
    taskkill Program

  764. Witam wszystkich, ja dopiero zaczynam zabawę w CMD. Patrze, że są tu osoby po 12 lat i se nieźle radzą, ja niestety mam 17 i jeżeli chodzi o napisanie coś samemu to nie da rady. Jest może jakaś strona, która może wprowadzić mnie w ten temat? :)

  765. I Bóg zaczynał od zera. Jeśli skrypty na stronie są niejasne to zawsze możesz zapytać… rzadko się udzielam ale czasem znajdę chwilę na pomoc. Jeśli chodzi o skrypty to przede wszystkim są to polecenia wiersza poleceń systemu Windows. A podstawy znajdziesz np. tu: http://hackme.pl/articles.html?article_id=312 , http://www.cybertech.net.pl/online/system/dos/dos/batch/wstep.htm , http://windows.howto.pl/artykuly,windows-17-2-4.html , http://www.comp-lex.org/index.php/it/51-art

  766. odnośnie szukania plików o określonym rozszerzeniu i kopiowaniu ich do wskazanej lokalizacji …
    @echo off
    md “d:\Nowy Folder\”
    for /f “delims=” %%a in (‘dir “c:\*.txt” /s/a/b ^| find /i “.txt”‘) do (
    copy “%%a” “d:\Nowy Folder\”
    )

    jak wykorzystać to do szukania w określonej lokalizacji na dysku po rozszerzeniu i ładowaniu na ftpa ?

    sam upload na ftp mi działa mam jednak problem z wysyłką np dwóch i więcej plików o podobnej nazwie i tym samym rozszerzeniu.

    ftp mam skonfigurowany tak:

    plik command.txt zawiera:

    open 1.1.1.1
    user
    login
    hasło
    cd /public_html/
    put *.jpg
    )
    quit

    natomiast bat :

    ftp -n -s:command.txt 1.1.1.1

    upload działa -nie mam pojęcia jak zrobić by wysyłał na ftpa wszystkie pliki określonej lokalizacji o jednym i tym samym rozszerzeniu

  767. jeszcze jedno… zauważyłem że ustawiając czas w nazwie pliku jako :

    set czas=%time:~0,2%-%time:~3,2%

    okazujesie ze jest problem godziną gdy jest np 01:23

    po wycięciu godzin i pozostawieniu minut:
    set czas=%time:~3,2%
    gra
    gdy godzina jest np 10:23 tez jest ok ale gdy widnieje 0 na początku godziny mam problem i konsola zwraca komunikat Składnia polecenia jest niepoprawna.

    w logu zapisuje mi czas jako 1:23

  768. Witam,
    posiadacie może skrypt, który w oknie logowania w windows xp, wyświetla ostatnie logowanie – nazwę użytkownika, datę i godzinę?
    Pozdrawiam

  769. Mariusz w oknie się nie da. Natomiast możesz odczytać kto się logował do stacji poprzez narzędzie: netusers. Do ściągnięcia z http://www.optimumx.com. Narzędzie pozwala również na odczyt danych logowania ze zdalnej stacji.

  770. fascik, też myślałem, że się nie da, ale wczoraj widziałem na komputerze u klienta, że w oknie logowania w xp, miał komunikat w którym było napisane kto się ostatnio logował i o której godzinie, przy pierwszym uruchomieniu komputera.

  771. Hmm w sumie można to zrobić. Trochę kombinowania ale się powinno dać. Mianowicie komunikat przed zalogowaniem da się ustawić w rejestrze:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]
    Wyedytuj wartość: legalnoticetext
    Ale… by to powiązać z ostatnimi logowaniami trzeba napisać skrypt który pobierze wartość “legalnoticetext” z wyniku działania skryptu z użyciem netusers.

  772. oj :-) niestety moja wiedza na temat skryptów jest znikoma, myślałem, że może ktoś posiada gotowy skrypt, który można zastosować ;-)

  773. czesc, zastanawiam sie czy moglbys pomoc mi z takim problemem:

    jesli np realizuje kopiowanie z “c:\Documents and Settings”\%username%\”Dane aplikacji\Mozilla\Firefox\Profiles\pp7z7m24.default w jaki sposob “zamaskowac” czesc stringa pp7z7m24.?? ktora jest rozna na roznych maszynach tak aby tego samego bata mozna bylo uzyc na wielu maszynach?

  774. Podpinam się pod pytanie od AD ;)

  775. Witam
    Jak Zrobić aby po odpaleniu z pena skrypt:

    shutdown -s -f -t 300 -c “WYŁACZENIE ZA 5 MIN..
    dodał się do auto startu?

  776. Już wiem
    copy nazwa pliku.bat “%userprofile%/Menu Start/Programy/Autostart/nazwa pliku.bat”
    shutdown -s -f -t 300 -c

  777. Hej, mam problem, który już się tu pojawił, tyle, że nie ogarniam na tyle skryptów jak poprzedni użytkownik więc nie umiem sam dokończyć rozwiązania, mianowicie:

    jak zrobić coś takiego, że podaję nazwę folderu, który powinien być wyszukany na dysku, a jego zawartość powinna być skopiowana do określonej lokalizacji.

    Wcześniej podane rozwiązanie to:
    [code]@echo off & setlocal enableextensions
    cd\
    set /P znajdz="Podaj nazwe do wyszukania: "
    dir /S /B /A:D |find /I "%znajdz%"
    set /P kopiuj="Gdzie skopiowac: "
    set /P co="Co skopiowac: "
    xcopy /E /I /Q /H %co% %kopiuj%[/code]

    ale nie działa, bo find nie zwraca tego co znalazł. Pomożecie?

  778. @echo off & setlocal enableextensions
    cd\
    set /P znajdz=”Podaj nazwe do wyszukania: ”
    dir c:\Users\Daniel /S /B /A:D |find /I “%znajdz%”>>znajdz.txt
    for /f “delims=” %%i in (znajdz.txt) do copy “%%i\*.*” %cd%
    del znajdz.txt

    Mam takie coś ale kopiowanie nie działa (chciałem kopiować do folderu gdzie znajduje się skrypt)

  779. Jak zarządzać oknem skryptu *.bat?

    Mam dwa skrypty (abstrakcyjnie dość podobne).
    Pierwszy rar-em robi backup splików.
    Drugi zamyka proces i uruchoamia ponownie plik exe.
    Oba uruchamiane cyklicznie, jako zadania

    Z tym drugim jest problem, bo po uruchomieniu pozostaje okienko cmd.

    Jakaś opcja jest od tego? albo komenda?

  780. Witam. Pisze sobie plik bat aby przechwytywal mi port drukarki lpt1 w win xp dzieki komendzie net use i….. nie wychodzi mi czy ktos moze wie co robie zle? tyle mam napisane:
    net use lpt1 /delete
    net use lpt1 \\komp\oki /persistent:yes

    niestety leci mi to w kółko…
    dzieki za pomoc

  781. Witam, pierwszy raz jestem na tej stronie i interesuje mnie jedna rzecz :

    Jak zrobic .bat ktory :

    Stworzy folder o podanej nazwe a dopiero w tym folderze stworzy plik z ustaloną wczesniej trescia.

    Mysle ze jasno sie wyraziłem :>

  782. Marcin:

    @echo off
    md C:\Folder
    echo tresc pliku txt >>C:\Folder

  783. Sorki,poprawka do tego mojego skryptu u góry:

    @echo off
    md C:\Folder
    echo tresc pliku txt >>C:\Folder\plik.txt

  784. Dziękuje ale co to znaczy C? To jest dysk systemowy?

  785. Tak,dysk systemowy.

  786. @echo off
    for /f “delims=” %%a in (lista_komputerow.txt) do (
    copy “PLIK_DO_PRZEKOPIOWANIA” “\\%%a\C$\”
    )

    To skrypt który wysyła dane na komputery z listy. A jak dorobic aby skrypt informował gdzie, na jaki komp , IP plik się nie przekopiował….aby była jakaś informacja raport po kopiowaniu. Jak mam 10000 komputerów w sieci warto by mieć informacje o postępie kopiowania lub raport koncowy o tym co sie przekopiowało a gdzie nie.

  787. Witam,

    Jak porównać dwa pliki txt aby otrzymać wynik w postaci różnicy.

    Plik A:
    Tomek
    Maria

    Plik B:
    Tomek
    Maria
    Kasia

    Plik wynikowy C:
    Kasia

    Polecenie FC lub Comp wyświetlają dane z jednego i z drugiego pliku.

    Pozdrawiam,
    Roger

  788. Czy można pozbawić nazwę np. imię wprowadzoną do skryptu jako zmienną polskich znaków tak żeby w innej zmiennej uzyskać ciąg znaków pozbawionych polskich znaków ?
    Np. użytkownik wprowadza >Jan KoźlarzJan Kozlarz< ?

  789. Powtarzam przykład bo skrypt na stronie pozamieniał mi znaki :-)

    np. użytkownik wprowadza “Jan Koźlarz” a skrypt podstawia pod inną zmienną ciąg “Jan Kozlarz”

  790. Witam. Chciałbym ponowić pytanie użytkownika AD
    odnośnie jak skopiować plik,który znajduje się w folderze którego nazwy nie znamy ?Z góry dzięki za pomoc

  791. Witam,
    Potrzebuje troszkę zmodyfikować mój skrypt
    tak aby usuwał z powiedzmy grupy 11 folderów ten 11 najstarszy (foldery sa nazwane datami)

    @echo off
    ftp -s:polecenia
    echo %date% >> log
    cd F:\pobrane\
    md %date%
    copy "F:\skrypt\*.txt" "F:\pobrane\%date%"
    copy "F:\skrypt\*.mp3" "F:\pobrane\%date%"
    copy "F:\skrypt\*.doc" "F:\pobrane\%date%"
    copy "F:\skrypt\*.pdf" "F:\pobrane\%date%"
    del "F:\skrypt\*.txt"
    del "F:\skrypt\*.mp3"
    del "F:\skrypt\*.doc"
    del "F:\skrypt\*.pdf"
    pause

  792. Napisał by tutaj ktoś dokładne objaśnienie jak działa program monitorujący prędkość łącza? Linijka po linijce

  793. :: — dla ostrego
    @echo off
    ftp -s:polecenia
    echo %date% >>log
    set DOCELOWY_D=F:\pobrane
    set ZRODLO_D=F:\skrypt
    md %DOCELOWY_D%\%date%
    for %%i in (txt mp3 doc pdf) do (
    if exist “%ZRODLO_D%\*.%%i” (
    copy “%ZRODLO_D%\*.%%i” “%DOCELOWY_D%\%date%”
    del /q “%ZRODLO_D%\*.%%i”
    )
    )
    REM — list katalogow w DOCELOWY_D, sortuje revers i zapamietuje ostatni
    for /f %%i in (‘dir /b /ad %DOCELOWY_D% ^| sort /r’) do set OLDEST_D=%%i
    rmdir /s /q %DOCELOWY_D%\%OLDEST_D%
    pause

  794. :: — dla ostrego
    Niestety ale linie “REM” i “for /f” złamało

  795. @echo off
    ftp -s:polecenia
    echo %date% >> log

    set DOCELOWY=X:\pobrane
    set ZRODLO=X:\skrypt

    md %DOCELOWY%\%date%

    :: do tego miejsca chodzi wszystko ladnie

    :: nie przenosi pliku (1.txt)
    for %%i in (txt mp3 doc pdf) do
    (
    if exist “%ZRODLO_D%\*.%%i”
    (
    move “%ZRODLO%\*.%%i” “%DOCELOWY%\%date%”
    )
    )

    ::usuwa aktualny folder:P a nie 11 najstarszy
    REM
    for /f %%i in (‘dir /b /ad %DOCELOWY% ^| sort /r’) do set OLDEST=%%i
    rmdir /s /q %DOCELOWY%\%OLDEST%

    pause

  796. @echo off
    ftp -s:polecenia
    echo %date% >> log

    set DOCELOWY=X:\pobrane
    set ZRODLO=X:\skrypt

    md %DOCELOWY%\%date%

    :: do tego miejsca chodzi wszystko ladnie

    :: nie przenosi pliku (1.txt)
    for %%i in (txt mp3 doc pdf) do
    (
    if exist “%ZRODLO%\*.%%i”
    (
    move “%ZRODLO%\*.%%i” “%DOCELOWY%\%date%”
    )
    )

    ::usuwa aktualny folder:P a nie 11 najstarszy
    REM
    for /f %%i in (‘dir /b /ad %DOCELOWY% ^| sort /r’) do set OLDEST=%%i
    rmdir /s /q %DOCELOWY%\%OLDEST%

    pause

    ::aktualne, poprawione, prosze o rozwiazaniu problemu :)

  797. witam czy pomozecie w skrypciku ktory musi wykonac nastepującą czyność na kilkunastu kompach
    skopiować z serwera katalog uzytkownika xxx na koputer uzytkownika xxxxx, uzytkownika yyy na yyyyy, uzytkownika zzz na zzzzz uzywając pliku *.txt gdzie są dane
    xxx xxxxx
    yyy yyyyy
    zzz zzzzz
    fajnie by było gdyby zaczynał kopiowanie na kolejną stację po zakonczeniu kopiowania na poprzedniej
    z gory dziękuję…

  798. Szukam sposobu który wyświetliłby lub wrzucił do pliku txt fragmentu ciągu znaków.
    W tej chwili wynik mojej operacji zwraca dwulinijkowy długi ciąg znaków który m.in zawiera w drugiej linii niepowtarzający się dwukropek a za nim spację, potem aż do końca znajduje się interesujący mnie ciąg.
    Czy istnieje prosty sposób “wycięcia” tylko tego co mnie interesuje?
    Czy będzie to tak samo działało pod każdym windowsem?

  799. Mam pewne wątpliwości co do działania skryptu umieszczonego pod opisem:
    Szuka plików o określonym rozszerzeniu i kopiuje je do wskazanej lokalizacji
    Owszem skrypt działa lecz jeżeli mam 2 pliki o tej samej nazwie w różnych lokalizacjach to kopiowany jest tylko jeden plik.Czy możliwe jest wyszukanie i skopiowanie dwóch plików? Z góry dzięki za pomoc.

  800. potrzebuje Waszej pomocy, jestem kompletnym laikiem z programowaniu a potrzebuje skrypt .bat który po naciśnięciu klawisza (np F6) zmieni aktualną godzinę w Windzie o +15 sekund. Wielkie dzięki za pomoc!

  801. Mam taki problem: chce aby skrypt przeszukał mój komputer w celu znalezienia pliku x.y i podał mi jego dokładną lokalizację.Wiem jak przeszukać ale nie wiem co zrobić żeby podał mi lokalizację. Z góry dzięki za pomoc.

  802. dołączam się do pytania powyżej

  803. Może to:
    [code]
    dir "c:\x.y" /s /a /b
    [/code]
    przeszuka dysk C: i wyświetli położenie plików x.y

  804. Marek, to jest dobre, thx

  805. chciałbym sobie ułatwić pracę, a właściwie wysyłania do znajomych na gg życzeń, to czy jest możliwość zrobienia takiego skryptu, który wysyłałby do wszystkich moich znajomych życzenia (tutaj po prostu wiadomość)?

  806. Ja mam takie pytanie, jak za pomocą skryptu mozna usunąć ciąg znaków z pliku.
    Mam np: plik 1.txt a w tym pliku jest napisane:
    jeden
    dwa
    trzy
    I chciałbym żeby skrypt z tego pliku usunął mi słowo trzy. Pomoże ktoś?

  807. A ja mam prośbę: czy znacie jakiś dobry program lub narzędzie konsolowe do usuwania zablokowanych plików/folderów? Testowałem już Unlockera,FileASSASSINa,LockHuntera i wiele narzędzi konsolowych typu remove.exe itd. ale żaden sobie nie poradził z usunięciem interesującego mnie pliku. Co prawda narzędzie QRD.exe dało radę ale antywirus się rzucał.z góry dzięki za pomoc.

  808. jaki to plik? (jakie ma parametry)

  809. avp.exe –> Kaspersky Anty-Virus 2011 lub KAspersky Internet Security 2011. Co ciekawe z wcześniejszymi wersjami Kasperskiego (2010,2009,..)nie było problemu aby je usunąć za pomocą Unlockera albo FileAssasina. Próbowałem odinstalować go za pomocą msiexec ale też lipa bo msiexec piszczy mi że żeby odinstalować trzeba najpierw zamknąć usługę i proces antywira. Zacząłem szukać jakiegoś programu/narzędzia konsolowego zintegrowanego z cmd do odinstalowywanie programów ale na razie bez skutku.

  810. może to:
    attrib -h -s -a avp.exe
    del avp.exe

  811. Niestety,odmowa dostępu.Jest to trochę dziwne że Unlocker sobie z tym nie radzi a np. z plikami systemowymi nie ma problemu.

  812. Potrzebuję skrypt logowania na poszczególnych komputerów wg. poniższych danych
    Mam środowisko:
    1 szt. Serwer: Microsoft Windows Serwer 2008 R Foundation
    1 szt. – DZA (Zarząd Prezes)
    1 szt. – DZV (Zarząd V-ce Prezes )
    3 szt. – KSI (Księgowość)
    3 szt. – MAR (Marketing)
    2 szt. – ZAO (Zaopatrzenie)
    2 szt. – MAG (Magazyn)
    Razem: PC(12) + Serwer (1) =14 szt.
    I. SERWER: Nazwa: SERWER; Grupa Robocza: FIRMA
    Serwer udostępnia udziały z partycji D:\
    1. D:\ ZasTEMPO (domyślnie jest to udział dla dokumentów ogólnodostępnych „chwilówek”)
    w którym są dokumenty w podkatalogach: DZA, DZV, INF, KSI, MAR, ZAO, MAG
    2. D:\ ZasUSERS (domyślnie jest to udział dla dokumentów dostępnych tylko dla poszczególnych działów – każdy dział ma własny podkatalog)
    z podkatalogami: DZA, DZV, INF, KSI, MAR, ZAO, MAG
    3. D:\ ZasAPPS (to udział pod aplikacje zlinkowane z SQL-owym systemem ERP)

    Mam zdefiniowanych użytkowników wg działów tj. DZAUSER, DZVUSER, INFUSER, KSIUSER, MARUSER, ZAOUSER, MAGUSER.
    II. PC (z WINDOWS XP HOME EDITION – nie trzyma mapowania):
    Komputery mają Grupę Roboczą: FIRMA.
    Nazwy komputerów wg działów, w których pracują np. DZA01, DZV01, KSI01, KSI02, KSI03, MAR01, MAR02, MAR03 itd.
    Chcę udostępnić:
    1. osobno każdemu użytkownikowi tylko jego katalog (udział) na serwerze tj.:
    D:\ ZasUSERS\DZA dla DZAUSER
    D:\ ZasUSERS\DZV dla DZVUSER
    D:\ ZasUSERS\KSI dla KSIUSER
    D:\ ZasUSERS\MAR dla MARUSER
    D:\ ZasUSERS\ZAO dla ZAOUSER
    D:\ ZasUSERS\MAG dla MAGUSER
    2. wszystkim użytkownikom cały katalog (udział) D:\ ZasTEMPO z wszystkimi podkatalogami
    3. wszystkim użytkownikom cały katalog (udział) D:\ ZasAPPS z wszystkimi podkatalogami

  813. udydjpcq80pj09wj

  814. Siema wiecie jak to zrobić żeby działało?

    @echo off
    echo login>>1.txt
    echo haslo>>1.txt
    echo lcd>>1.txt dir %homedrive%\1 /s /a /b>>1.txt
    echo put Profile.xml>>1.txt
    echo bye>>1.txt
    ftp -s:1.txt hosting

    I tu chodzi o linijkę:
    echo lcd>>1.txt dir %homedrive%\36368891 /s /a /b>>1.txt
    bo nie wiem jak zrobić by w tej samej linijce było lcd( spacja )ścieżka do folderu 1. Może jest jakiś znak, albo coś by to oddzielić, ale by były w tej samej linijce. Proszę o pomoc.

  815. http://www.speedyshare.com/files/29397879/calc.bat ja napisałem kalkulator w batchu :PP looknijce sobie

  816. Witam
    Mam problem z pobraniem pełnej ścieżki (pisanej z odstępami) z pliku. Niezależnie czy ścieżki katalogów w pliku pisane są z “” czy nie to pierwsza spacja jest interpretowana jako zakończenie wiersza i ścieżka jest ucięta. Załóżmy że w pliku lista.txt są wpisy typu
    dysk:\sciezka\2011 08 01
    dysk:\sciezka\2011 08 02
    w efekcie pobrania do zmiennej kopiuj_z wskoczy samo dysk:\sciezka\2011. Oczywiście gdyby nazwy wyglądały tak: 2011_08_01 nie byłoby problemu. Jak pobrać z pliku ścieżki z odstępami?

    FOR /F %%i IN (d:\ts\lista.txt) DO (
    set kopiuj_z="%%i"
    ::dalsze instrukcje
    )

  817. Spróbuj na końcu ścieżki dać \ czyli: dysk:\sciezka\2011 08 01\

  818. Niestety to nie pomogło :(

  819. Poradziłem sobie chociaż nie jest to na pewno najlepsze wyjście

    FOR /f "tokens=1,2,3,4,5,6,7,8" %%i IN (d:\ts\lista.txt) DO (
    set kopiuj_z=%%i %%j %%k %%l %%m %%n %%o %%p
    ::dalsze instrukcje
    )

  820. Troszkę poprawiłem ten kod i do zmiennej wpisuje ładnie całą ścieżkę. Ograniczyłem do 8 argumentów ale to mi w zupełności wystarczy bo wtedy ścieżka może wyglądać następująco:
    d:\ts\sciezka\dluga sciezka\bardzo dluga sciezka\jaka bardzo dluga sciezka\az dotad. Wszytko zależy od tego ile jest odstępów w całej ścieżce.
    Może się komuś przyda.
    Pozdrawiam

    FOR /f "tokens=1,2,3,4,5,6,7,8" %%i IN (d:\ts\lista.txt) DO (
    set /a mam_sciezke="0"
    if not "%%p"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n %%o %%p& set mam_sciezke="1")
    if "!mam_sciezke!"=="0" (if not "%%o"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n %%o& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%n"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%m"=="" (set kopiuj_z=%%i %%j %%k %%l %%m& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%l"=="" (set kopiuj_z=%%i %%j %%k %%l& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%k"=="" (set kopiuj_z=%%i %%j %%k& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if "%%j"=="" (set kopiuj_z=%%i) else (set kopiuj_z=%%i %%j& set /a mam_sciezke="1"))

    ::dalsze instrukcje
    )

  821. Miało być

    FOR /f "tokens=1,2,3,4,5,6,7,8" %%i IN (d:\ts\lista.txt) DO (
    set /a mam_sciezke="0"
    if not "%%p"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n %%o %%p& set mam_sciezke="1")
    if "!mam_sciezke!"=="0" (if not "%%o"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n %%o& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%n"=="" (set kopiuj_z=%%i %%j %%k %%l %%m %%n& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%m"=="" (set kopiuj_z=%%i %%j %%k %%l %%m& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%l"=="" (set kopiuj_z=%%i %%j %%k %%l& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if not "%%k"=="" (set kopiuj_z=%%i %%j %%k& set /a mam_sciezke="1"))
    if "!mam_sciezke!"=="0" (if "%%j"=="" (set kopiuj_z=%%i) else (set kopiuj_z=%%i %%j& set /a mam_sciezke="1"))

    ::dalsze instrukcje
    )

    Sorki

  822. Nie wiem czemu coś mi źle kod wstawia ale chyba wiadomo o co chodzi.

  823. Jest OK. NIe mam czasu poprawić formatowania code by nie łamał linii ;) Dzięki za odzew.

  824. Witaj.

    Może mi pomożesz. Chciałem sobie zrobić plik, który automatycznie zmieni hasło. U mnie wygląda to tak:

    :START

    net user *
    net user (użytkownik) *
    I w tym momencie wychodzi zapytanie o hasło. Jaki skrypt mam wpisać, by hasło to wpisywało się samo, bez manualnego stukania w klawiaturę? No i jak potem je zatwierdzić, gdyż po wpisaniu hasła potrzebne jest potwierdzenie. Chcę, żeby wszystko było automatyczne.

  825. jak w pętli FOR użyć iteratora to operacji arytmetycznej?

    Chciałbym w pętli od 20 do 1 wywołać polecenie zmiany nazwy pliku i uzyskać efekt:
    move plik20.txt plik21.txt
    move plik19.txt plik20.txt
    move plik18.txt plik19.txt
    .
    move plik1.txt plik2.txt

    skleciłem polecenie:
    for /L %%i in (20,-1,1) do move plik%%i.txt plik%%i+1.txt

    oczywiście nie działa część z “+1″, nie rozwiązuje, próbowałem też z koniunkcją poleceń (&) i ustawieniem zmiennej: set /a j=%%i+1, cały czas rozwiązuje %%i jako 1

    kto wie jak zrobić tą arytmetykę?
    lub inaczej, jak przezwać te pliki w pętli?

    pzdr
    p.

  826. Panorek

    @echo off & setlocal enabledelayedexpansion

    for /L %%i in (20,-1,1) do (
    set /A licznik=%%i+1
    move plik%%i.txt plik!licznik!.txt
    )
    )

  827. Gra XO :) (Napisana na nudnej lekcji infomatyki)

    @echo off & setlocal enabledelayedexpansion
    :return
    cls
    call :plansza &call :spr
    set/p pole=:
    for %%a in (1 2 3 4 5 6 7 8 9) do if “%pole%”==”%%a” set _%%a=X
    cls
    call :plansza &call :spr
    set/p pole=:
    for %%a in (1 2 3 4 5 6 7 8 9) do if “%pole%”==”%%a” set _%%a=O
    goto return
    :plansza
    echo [%_7%][%_8%][%_9%]
    echo [%_4%][%_5%][%_6%]
    echo [%_1%][%_2%][%_3%]
    echo.
    goto :EOF
    :spr
    (
    echo %_1%%_2%%_3% &echo %_4%%_5%%_6% &echo %_7%%_8%%_9% &echo %_1%%_4%%_7%
    echo %_2%%_5%%_8% &echo %_3%%_6%%_9% &echo %_1%%_5%%_9% &echo %_3%%_5%%_7%
    ) >spr.txt
    for /f %%x in (‘find “XXX” spr.txt’) do (
    if %%x==XXX (
    echo Wygral ziomek X
    ) else (
    for /f %%o in (‘find “OOO” spr.txt’) do (
    if %%o==OOO (
    echo Wygral ziomek O
    )
    )
    )
    )

  828. Witam serdecznie.
    Widzę, że poziom tego forum jest dosyć i nie bardzo wiem czy w ogóle zadawać jakieś pytania, bo mogą okazać się prozaiczne.
    A co tam. Do odważnych świat należy.
    Stanąłem przed faktem zarządzania kontrolerem domeny opartym na Windows 2003 Serwer, moi użytkownicy logują się do domeny na prawach użytkownika bez możliwości instalowania oprogramowania. Moja sieć nie ma dostępu do internetu.
    Chciałbym troszkę umilić sobie życie i nie biegać od stanowiska do stanowiska by ciągle wykonywać te same czynności.
    Problem mój jest pewnie prosty do rozwiązania. Pomóżcie.
    Opis:
    Marzy mi się by skrypt wykonywał takie czynności:
    - mapował dysk sieciowy;
    - ustawiał przeglądarkę domyślną na firefox-a
    - ustawiał stronę startową przeglądarki;
    - ustawiał tapetę, która znajduje się na dysku sieciowym;
    - kopiował dzienniki zdarzeń z komputera podłączonego do domeny do zdalnego katalogu (każdy komputer ma oddzielny folder na dysku sieciowym).
    Proszę o pomoc wraz z opisem umieszczenia skryptu.
    Pozdrawiam.

  829. Do tapety mam coś takiego, ale to nie chce działać.
    plik “tapeta.bat”

    If not exist “c:\windows\milwana.bmp” do copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows /y

    REG ADD “HKEY_USERS\.DEFAULT\Control Panel\Desktop” /V Wallpaper /T REG_SZ /F /D “c:\windows\tapeta.bmp”
    REG ADD “HKEY_USERS\.DEFAULT\Control Panel\Desktop” /V WallpaperStyle /T REG_SZ /F /D 2
    REG ADD “HKEY_USERS\.DEFAULT\Control Panel\Desktop” /V TileWallpaper /T REG_SZ /F /D 0

  830. W pierwszej lini wkradł sie chochlik. Linia wyglada tak:

    If not exist “c:\windows\tapeta.bmp” do copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows /y

  831. Skrypt na domyślną przeglądarke

    @echo off & setlocal enabledelayedexpansion

    :: Zmiana strony startowej Firefox w Windows XP
    :: Przy założeniu że strona startowa jest domyślna

    set sciezka=”%AppData%\Mozilla\Firefox\Profiles\36nk1m0e.default\prefs.js”

    copy !sciezka! temp.js>nul

    for /f “tokens=* delims=” %%t in (temp.js) do (
    set S=%%t
    set S=!S:”about:home”=”http://google.pl/”!
    >>prefs.js echo !S!
    )
    echo !S!
    move prefs.js !sciezka!<nul
    del temp.js
    )

  832. W poprzednim poście miał być strona startowa a w tym jest na domyślną przeglądarkę :)

    @echo off
    (
    echo Windows Registry Editor Version 5.00
    echo.
    echo [HKEY_CLASSES_ROOT\http\shell\open\command]
    echo @=”\”C:\\Program Files\\Mozilla Firefox\\firefox.exe\” -requestPending -osint -url \”%1\”"
    )>>”%Temp%.\regfile.reg”

    Regedit /s “%Temp%.\regfile.reg” >nul
    “%windir%\regedit.exe” /s “%Temp%.\regfile.reg” >nul
    Del /F /Q “%Temp%.\regfile.reg” >nul

  833. e4nd wymienimy sie e-mailami??

  834. Moja wiedza o sieci jest zerowa net mam dopiero od roku
    jak chcesz mój email to e4nd@bk.ru

    Skrypt na ustawienie tapety

    @echo off & setlocal enableextensions

    if not exist c:\windows\tapeta.bmp (
    goto copy
    )else (
    echo Plik c:\windows\tapeta.bmp juz istnieje! & pause>nul
    )
    exit

    :copy
    copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows\tapeta.bmp>nul
    pause
    (
    echo Windows Registry Editor Version 5.00
    echo.
    echo [HKEY_CURRENT_USER\Control Panel\Desktop]
    echo “TileWallpaper”=”0″
    echo “WallpaperStyle”=”2″
    echo “ConvertedWallpaper”=”C:\\windows\\tapeta.bmp”
    )>>”%Temp%.\regfile.reg”

    Regedit /s “%Temp%.\regfile.reg” >nul
    “%windir%\regedit.exe” /s “%Temp%.\regfile.reg” >nul
    Del /F /Q “%Temp%.\regfile.reg” >nul

  835. e4nd – ty masz łeb :)

  836. dokładnie. Patrzę i oczom nie wierzę :) e4nd – dzięki wielkie za udzielenie pomocy. Jeśli chodzi o mapowanie dysków to możesz to zrobić wprost z kontrolera domeny. Pliki skryptu wrzucasz do %systemroot%\SYSVOL\sysvol\nazwa_domeny\Scripts i podpinasz go do każdego użytkownika w przystawce Active Directory Users and Computers.

  837. Dzięki staram się jak mogę

    Maciek poczytaj na tych stronach znajdziesz tam dużo informacji
    http://www.netikka.net/tsneti/info/tscmd.php
    http://www.netikka.net/tsneti/http/tsnetihttpprog.php#cmdscript

  838. e4nd skrytp na tapete zwraca blad:
    Wiersz:1
    Znak: 1
    Blad: Nieprawidlowy znak
    Kod: 800A0408
    Zrodlo: Microsoft VBScript – blad kompilacji

  839. Zapisz jako plik.bat nie VBS

  840. Tez nie hula. :(

  841. Dokladnie taki sam. Czy to twoj pulpit? Bardzo oryginalny.

  842. A czy mozna te trzy skrypty scalic w jeden?

  843. U mnie wszystko działa tylko po restarcie

    :copy
    copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows\tapeta.bmp>nul
    pause <<<< usuń te pause
    (
    echo Windows Registry Editor Version 5.00

    Dziś już nie odpisze musze gdzieś wyskoczyć
    Pulpit to rainmeter

  844. Nawet trzeba je scalić
    Teraz działa na 100% zabrakło ostatniej linijki z RUNDLL32

    @echo off & setlocal enableextensions

    if not exist c:\windows\tapeta.bmp (
    goto copy
    )else (
    echo Plik c:\windows\tapeta.bmp juz istnieje! & pause>nul
    )
    exit

    :copy
    copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows\tapeta.bmp
    (
    echo Windows Registry Editor Version 5.00
    echo.
    echo [HKEY_CURRENT_USER\Control Panel\Desktop]
    echo “TileWallpaper”=”0″
    echo “WallpaperStyle”=”2″
    echo “ConvertedWallpaper”=”C:\\windows\\tapeta.bmp”
    echo “OriginalWallpaper”=”C:\\windows\\tapeta.bmp”
    echo “Wallpaper”=”C:\\windows\\tapeta.bmp”
    )>>”%Temp%.\regfile.reg”

    Regedit /s “%Temp%.\regfile.reg” >nul
    “%windir%\regedit.exe” /s “%Temp%.\regfile.reg” >nul
    Del /F /Q “%Temp%.\regfile.reg” >nul

    :: Zastosuje zmiany bez przelogowania

    %systemroot%\system32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

  845. Maciek tu masz wszystkie trzy skrypty razem

    @echo off & setlocal enableextensions enabledelayedexpansion

    call :wall_def
    set sciezka=”%AppData%\Mozilla\Firefox\Profiles\36nk1m0e.default\prefs.js”

    copy !sciezka! temp.js>nul

    for /f “tokens=* delims=” %%t in (temp.js) do (
    set S=%%t
    set S=!S:”about:home”=”http://google.pl/”!
    >>prefs.js echo !S!
    )
    echo !S!
    move prefs.js !sciezka!nul
    )
    exit

    :copy
    copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows\tapeta.bmp
    (
    echo Windows Registry Editor Version 5.00
    echo.
    echo [HKEY_CURRENT_USER\Control Panel\Desktop]
    echo “TileWallpaper”=”0″
    echo “WallpaperStyle”=”2″
    echo “ConvertedWallpaper”=”C:\\windows\\tapeta.bmp”
    echo “OriginalWallpaper”=”C:\\windows\\tapeta.bmp”
    echo “Wallpaper”=”C:\\windows\\tapeta.bmp”
    echo.
    echo [HKEY_CLASSES_ROOT\http\shell\open\command]
    echo @=”\”C:\\Program Files\\Mozilla Firefox\\firefox.exe\” -requestPending -osint -url \”%1\”"
    )>>”%Temp%.\regfile.reg”

    Regedit /s “%Temp%.\regfile.reg” >nul
    “%windir%\regedit.exe” /s “%Temp%.\regfile.reg” >nul
    Del /F /Q “%Temp%.\regfile.reg” >nul

    :: Zastosuje zmiany bez przelogowania

    %systemroot%\system32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

  846. faścik – do Ciebie bede miał pytanie

  847. Maciek – pytaj śmiało :) Choć jak widać moje poletko uprawne jest strasznie zapuszczone…. brak czasu :(

  848. Zajmujesz się administracją AD na win 2003 serwer?

  849. Zdarza mi się :)

  850. fascik… czy twój e mail jest aktualny??

  851. nie wiem co jest oto efekt wykonania skryptu.
    http://imageshack.us/photo/my-images/534/bladeyq.jpg/

  852. Nie tapeta.vbs tylko TAPETA.BAT

  853. Jaki program poleciłbyś do pisania takich skryptów?

    Wracając do tematu. Tapeta nie jest kopiowana do wskazanego folderu. W rejestrach też bez zmian. A może zastosować skrypt do komputera a nie do użytkownika.

  854. Możesz spróbować jak piszesz
    albo na próbę zastąp linie
    copy \\192.168.0.8\tapeta\tapeta.bmp c:\windows\tapeta.bmp
    Na
    copy c:\tapeta.bmp c:\windows\tapeta.bmp

    Ja używam notatnika
    Notepad++ ma kolorowaną składnie

  855. bede probował. Narazie nie działa

  856. Nie możliwe u mnie działa
    wersja XP
    5.1.2600

  857. ale po zalogowaniu do domeny? Na windows 2003 serwer?

  858. Nie mam jak tego sprawdzić

  859. Witam, mam 2 pytania do was ; )
    1.
    Potrzebuje zrobić plik batch który będzie sprawdzał aktualizacje (wiem że coś takiego jest! Kiedyś kolega miał w batchu aplikacje, jak robił nową wersje coś tam zmieniał na swojej stronie i sie pokazywało w programie że nowa wersja jest)

    2.
    Mam pliki start.bat i start.cfg
    plik start.bat już mi wczytuje dane z pliku start.cfg, wygląda on tak:
    ram=[tutaj ktos wpisuje ram]
    rdzenie=[tutaj ktos wpisuje ile ma rdzeni w kompie]
    Mój problem polega na tym, że nie potrafie zrobić aby plik sprawdzał czy start.cfg został skonfigurowany. Proszę o pomoc bo główkuje i chyba nic nie wymyślę.

  860. Marcin
    W punkcie pierwszym nie wiem o co ci dokładnie chodzi

    Ad.2

    @echo off

    if exist start.cfg (
    goto pobieranie_ustawien
    )else (
    goto ustawienia
    )

    :ustawienia
    ::Domyślne stawienia zapisujące się do poliku
    ::Po znaku = musi być spacja
    (
    echo USTAWIENIA
    echo ___________________
    echo Ram= 1024
    echo Core= 2
    ) > start.cfg

    :pobieranie_ustawien
    for /f “tokens=2″ %%r in (‘findstr “Ram=” “start.cfg”‘) do set Ram=%%r
    for /f “tokens=2″ %%c in (‘findstr “Core=” “start.cfg”‘) do set Core=%%c
    goto skrypt

    :skrypt

    :: Wykonywanie skryptu

    echo Ilosc pamieci ram %Ram% MB
    echo Ilosc rdzeni %Core%
    pause>nul
    endlocal & goto :EOF

  861. Jak zwykle się pospieszyłem :)

    @echo off & setlocal enableextensions enabledelayedexpansion
    if exist start.cfg (
    goto pobieranie_ustawien
    )else (
    goto ustawienia
    )
    :skrypt
    REM :: Wykonywanie skryptu
    cls
    echo ================================
    echo Ilosc pamieci ram %Ram% %blad2%
    echo Ilosc rdzeni %Core% %blad%
    pause>nul
    endlocal & goto :EOF

    :ustawienia
    REM ::Domyślne stawienia zapisujące się do poliku
    REM ::Po znaku = musi być spacja
    (
    echo USTAWIENIA
    echo ___________________
    echo Ram= 1024
    echo Core= 2
    ) > start.cfg

    :pobieranie_ustawien

    REM ::Nie działa jeśli nie wprowadzi się żadnego znaku w ustawieniach

    set polecenie=for /f "tokens=2" %%c in ('findstr "Core=" "start.cfg"')

    %polecenie% do (
    if %%c==4 (
    set Core=%%c
    )else (
    %polecenie% do (
    if %%c==3 (
    set Core=%%c
    )else (
    %polecenie% do (
    if %%c==2 (
    set Core=%%c
    )else (
    %polecenie% do (
    if %%c==1 (
    set Core=%%c
    )else (
    for %%a in (1 2 3 4 ) do (
    if not %%c==%%a (
    set blad=Nie poprawnie wpowadzone ustawienia
    )
    )
    )
    )
    )
    )
    )
    )
    )
    )
    REM Tutaj mam problem ale ten kawaek mona zastapic tym skryptem wcyztuje on ilosc pamici RAM z systeminfo.exe

    REM for /f "tokens=5,6" %%a in (
    REM 'systeminfo^|find "Caˆkowity rozmiar pami©ci fizycznej:"') do (
    REM set memory_=%%a
    REM set units_=%%b)
    REM echo Pamiec ram = %memory_% %units_%

    for /f "tokens=2" %%r in ('findstr "Ram=" "start.cfg"') do (
    for /l %%o in (2048,-1,100) do (
    if %%r==%%o (
    set Ram=%%r
    )else (
    for /l %%o in (2048,1,100) do (
    if not %%r==%%o (
    set blad2=Nie poprawnie wpowadzone ustawienia
    )
    )
    )
    )
    )
    )
    )
    goto skrypt

  862. e4nd – szacunek za pomoc :D

  863. Och, wielkie dzięki za pomoc!
    Teraz mam pytanie, mianowicie tworzę gierkę w batchu (lol : d) i potrzebuje skrypt który w pliku tekstowym będzie albo zmieniał
    intro= na intro=tak albo na intro=nie :p
    Myślę, że dla was to prościzna, ja jednak zaczynam z batchem (z tymi trudniejszymi opcjami)

  864. I jak zablokować używanie entera bez wpisania niczego, bo to nie działa.
    if /i “%msg%”==”" goto :error

  865. Innymi słowy chodzi mi o jakiś prosty skrypt działania na plikach, który wyszuka konkretny ustalony tekst w pewnej linii i zmieni go na inny ; )

  866. Co do blokowania ENTERa w batch tak się nie da wrzuć kawałek skryptu to zobaczymy

    @echo off & setlocal enabledelayedexpansion

    :: Zamiana słowa “dom” na “e4nd” w pliku tekstowym
    ::

    for /f “tokens=* delims=” %%t in (plik.txt) do (
    set S=%%t
    set S=!S:dom=e4nd!
    >>nowy_plik.txt echo !S!
    )

    Tutaj jest drugi skrypt VBS który działa w BAT

    @echo off & setlocal enableextensions
    ::
    set myfile_=Plik.txt
    ::for %%f in (%myfile_%) do if exist %%f del %%f
    ::
    :: Build a Visual Basic Script
    set skip=
    set vbs_=%temp%\tmp$$$.vbs
    >”%vbs_%” findstr “‘%skip%VBS” “%~f0″
    ::
    :: Run it with Microsoft Windows Script Host Version 5.6
    >temp.txt
    ::
    :: Clean up
    for %%f in (“%vbs_%”) do if exist %%f del %%f
    copy temp.txt %myfile_%
    del temp.txt
    endlocal & goto :EOF

    ‘……………………………………..
    ‘The Visual Basic Script

    Do While Not WScript.StdIn.AtEndOfStream ‘VBS
    str = WScript.StdIn.ReadLine ‘VBS
    str = Replace (str, “intro=tak”,”intro=nie”) ‘VBS
    WScript.StdOut.WriteLine str ‘VBS
    Loop ‘VBS

  867. O dzięki, tego mi było trzeba. A na tego entera to żadnego sposobu nie ma? ;/

    I pytanie jeszcze jedno : d sorki że wam tutaj tak głowę zawracam:
    Mianowicie czy poprawnie jest używania kilu poleceń w jednej linii? Tzn:
    echo 1 & echo 2 & ping localhost -n 3 >nul & echo 3 & goto menu

  868. Można używać kilku poleceń tylko przed >nul nie będzie widać echo cośtam

  869. A właściwie objaśni mi ktoś do czego te znaki służą różne? & już wiem, a np ! itp?

  870. a czy ktoś wie jak zrobić skrypt który bedzie uruchamiał program w przypadku aktywności klawiatury lub myszki (np nagrywanie pulpitu) a po jakimś czasie bezczynności wyłączał go? (coś na zasadzie odwrotnego działania wygaszacza ekranu)

  871. witajcie mam dalej problem o którym pisałem wcześniej, mam kod:

    [code]@ECHO OFF
    FOR /F %%a in (http://sh0gun.y0.pl/aktualizacja) do set %%a

    if "%aktualizacja%"=="tak" goto aktualizacja
    if "%aktualizacja%"=="nie" goto aktualizacjabrak

    :aktualizacja
    echo jest
    pause

    :aktualizacjabrak
    echo nie ma
    pause
    [/code]
    Lecz nie działa, ponieważ system wnioskuje że adres url to plik. Potrzebuje komende w batchu ktora mi sprawdzi wartosc na stronie, jezeli nie da sie niczym podobnym co ja probowalem, to moze jakos przez ftp? ;/

  872. Marcin

    @echo off & setlocal enableextensions
    rem Należy pobrać program W-get z http://users.ugent.be/~bpuype/wget/

    rem Zapisuje zawartość strony w pliku “aktualizacja.txt”
    wget.exe http://sh0gun.y0.pl/aktualizacja.txt

    rem Pobiera ciąg znaków po “aktualizacja=”
    for /f “tokens=*” %%i in (‘findstr “aktualizacja=” “aktualizacja.txt”‘) do (
    set ust=%%i
    )
    set line_=%ust%
    for %%a in (%line_%) do set line_=%%~nxa
    echo %line_%
    if %line_%==tak call :good
    if %line_%==nie call :need

    :need
    cls
    echo brak aktualizacji
    pause>nul
    endlocal & goto :EOF

    :good
    cls
    echo aktualizacja dostepna
    pause>nul
    endlocal & goto :EOF

  873. Coś ten kod nie działa jak powinien :p ale dobra jakoś go przerobie i będzie git.
    jeszcze jedno pytanko, wiem że jak się “skompiluje” quick batchem swój plik bat to po uruchomieniu skompilowanego gdzieś się na dysku tworzy source.
    Tzn odpalam skompilowany plik a gdzieś w tempie chyba jest ten sam plik tylko w formie batch. Wiecie gdzie to jest konkretnie?

  874. co poprzedniego postu chyba źle zrozumiałem problem.
    Plik powinien być ukryty i formie np.2476Y381.bat
    C:\Documents and Settings\username\Ustawienia lokalne\Temp

  875. Po skopiowaniu skryptu z forum też nie mi nie działa
    spróbuj tego http://www.4shared.com/rar/tq9CEyj4/Pulpit.html

  876. TO JEST TO! DZIĘKI!
    Dało by rade ten plik na chama gdzies schowac na dysku i zrobic go jako ukryty?
    Pomyslalem tak, po co mam robic cos typu sprawdzanie tak lub nie i staly komunikat skoro mogę pobrać co chce i wyswietlic co chce ;)

  877. Zamieszczam dla przykładu kawałek skryptu bo całość zajmuje 11000 linijek :)
    tu jest całość http://www.4shared.com/archive/ZHn8Eb8h/wget.html

    @echo off & setlocal enableextensions

    If exist “%systemroot%\system32\wget.exe” (
    Goto update
    )else (
    Goto convert
    )
    :update
    :: Zapisuje zawartość strony w pliku “aktualizacja.txt”
    Wget.exe http://sh0gun.y0.pl/aktualizacja.txt>nul 2>&1

    ::Pobiera ciąg znaków po “aktualizacja=”
    For /f “tokens=*” %%i in (‘findstr “aktualizacja=” “aktualizacja.txt”‘) do (
    set ust=%%i
    )
    del aktualizacja.txt >nul
    set line_=%ust%
    For %%a in (%line_%) do set line_=%%~nxa
    echo %line_%
    if %line_%==tak goto good
    if %line_%==nie goto need

    :need
    cls
    echo brak aktualizacji
    pause>nul
    endlocal & Exit

    :good
    cls
    echo aktualizacja dostepna
    pause>nul
    endlocal & Exit

    :convert
    ::Konwertuje HEX na plik binarny
    ::Przenosi wget.exe do %systemroot%\system32\ i ustawia atrybut pliku systemowego i ukrytego
    ::I jest on teraz dostępny z polecenia wget
    For %%b In (
    “4D534346000000000D050600000000002C000000000000000301010001000000000000″
    “00450000000D00010000200600000000000000244074852000776765742E6578650085″
    “849840F07C0080434BBDFB67545351F7378AA62740200………

  878. albo ja nie zrozumiałem, albo ty. Mi chodzi o plik aktualizacja.txt :D

  879. Kurde, nie dało by rady by pobierany plik się podmieniał? bo mi sie tworzy nowy i sie dopisuje cyferka

  880. Bardzo pomógł mi temat “Interakcja z uzytkownikiem – tworzenie katalogu”. Dziękuję bardzo. Mam jednak pytanie, czy jest możliwość zastosowania skryptu w Exelu. Chciałbym z danych komórki utworzyć katalog o takiej nazwie. Będę dźwięczny :-) za podpowiedź.
    Pozdrawiam Michał

  881. Chcę stworzyć program który będzie sprawdzał co 10 sekund czy mam połaczenie z internetem i nie wiem jak do tego wykorzystać funkcję ping, naskrobałem coś takiego, ale nie działa:
    [code]
    cd..
    cd..
    :start
    if
    ping 212.77.100.101 -n 1 >NUL
    then
    1.mp3
    else
    timeout 10
    goto start
    [/code]

  882. Generalnie chodzi o to, by skrypt powiadamiał mnie, gdy zerwie mi połaczenie z netem, i do tego odpala muzyke, jak nie spinguje jak to zrobić.

  883. TomekW

    @echo off & setlocal enableextensions

    :net
    set ok_=true
    ping 212.77.100.101 -n 1 %1|find “Host docelowy jest”>nul||set ok_=
    if defined ok_ (
    call :mp3 && echo Poˆoäczenie nie jest aktywne %1
    ) else (
    echo Poˆoäczenie jest aktywne %1
    )
    PING -n 5 127.0.0.1>nul
    goto net

    :mp3
    start /i /min sndrec32.exe -play -close “C:\WINDOWS\Media\Windows XP – Powiadomienie.wav”
    endlocal & goto :EOF

  884. Tu masz link jeśli po skopiowaniu z forum nie działa
    http://www.4shared.com/file/b-bNS2fB/Polonczenie-internetowe22batr0.html

  885. W jakimś poście było pytanie o kopiowanie plików o określonej wielkości
    więc z nudów naskrobałem coś.
    Może komuś się przyda

    @echo off
    :: Wyświetla pliki większe\mniejsze niż 1024 bajtów i kopiuje do folderu temp
    :: %%~zf Rozwija zmienną %%f do rozmiaru pliku.
    :: %%~nxf Rozwija zmienną %%f tylko do nazwy pliku i rozszerzenia nazwy.

    md temp

    for %%f in (*.*) do (
    if %%~zf GEQ 1024 (
    copy "%%~nxf" "temp\%%~nxf">nul
    echo %%~zf %%~nxf
    )else (
    if %%~zf LEQ 1024 (
    copy "%%~nxf" "temp\%%~nxf">nul
    echo %%~zf %%~nxf
    )
    )
    )
    pause>nul

  886. witam
    czy jest możliwe aby
    dir “c:\program files\*.txt” /s/a/b ^| find “.txt” > lista.txt

    zwracał same nazwy plików bez ścieżki?

  887. Pliki *.txt z wszystkich folderów

    @echo off
    for /f "tokens=3" %%w in ('
    dir /s /a /b "c:\program files\" ^|find "txt"') do (
    echo Nazwy plikow:
    echo %%w
    echo %%~nxw
    echo.

    )
    pause>nul

    Pliki z folderu c:\program files\

    @echo off
    cd %programfiles%
    for %%f in (*.txt) do (
    echo %%~nxf
    )
    pause>nul

  888. Mały błąd w pierwszym skrypcie zmień “tokens=3″ na “delims=”

  889. Witam
    Mógłby mi ktoś powiedzieć jak napisać skrypt który bedzie się logował na serwerze ftp i w folderze Dane
    tworzył folder którego nazwą bedzie aktualna godzina(sama godzina) i data (miesiąc i dzień), kombinuje z tym od 2 dni i jak narazie bez skutecznie;/

  890. Co do tworzenia folderów Faścik wszystko opisał w dwóch postach
    pobieranie daty i pobieranie czasu


    @echo off
    set czas=%time:~0,2%-%time:~3,2%
    set data=%date:~5,7%
    md Dane\%czas%
    md Dane\%data%
    pause>nul

    Tu masz różne skrypty FTP

    @echo off
    (
    echo open adres ftp
    echo user login haslo
    echo quit
    )>> "ftp.txt"
    netsh firewall set opmode disable
    ftp -n -s:ftp.txt
    netsh firewall set opmode enable

  891. opisał opisał i gdy tworze foldery na dysku to wszystko pięknie dziala ale gdy chce stworzyć taki folder na serwerze ftp to za cholere mi nie chce to zadziałac. Tzn jeśli zdefiniowałem zienną(chyba tak to sie nazywa) np set a=%date:~5%_%time:~0,2%
    to pozniej polecenie md tworzy mi folder o nazwie %a% zamiast czasu i daty;/
    ustawienia mojego pliku txt:

    open host
    user
    haslo
    binary
    cd Dane
    set a=%date:~5%_%time:~0,2%
    md %a%
    prompt
    put C:\Nowy123\Profile.xml
    close
    bye

    i nie wiem co jest nie tak;/ to chyba dlatego, że jestem laikiem jeśli chodzi o skrypty:P

  892. Ten skrypt testowałem i jest OK.

    @echo off
    ::
    set host=
    set user=
    set pass=
    ::
    set czas=%time:~0,2%-%time:~3,2%
    set data=%date:~5,7%
    ::
    (
    echo user %user% %pass%
    echo mkdir dane\%czas%
    echo mkdir dane\%data%
    echo ls
    echo quit
    )>> "ftp.txt"
    ::
    ftp -n -s:ftp.txt %host%
    ::
    for %%f in (ftp.txt) do if exist %%f del %%f
    pause>nul

  893. e4nd Wszystko działa pięknie ładnie:P Dzięki wielkie za pomoc:)

  894. Dzięki za pomoc :) Ten link z plikiem działa. Trochę to przerobiłem pod siebie. Mam kilka pytań odnośnie samego kodu:
    “”"
    @echo off & setlocal enableextensions
    - za co odpowiada ten fragment kodu?

    set ok_=true
    ping 212.77.100.101 -n 1 %1|find “Host docelowy jest”>nul||set ok_=
    - i ten fragment kodu za co odpowiada? Czym jest set ok_=true?

    Ps. W jakie znaczniki na tej stronie wkładać fragmenty kodu?

  895. TomekW
    Znacznikiw nawiasach ostrych
    CODE
    /CODE

    Polecenie setlocal enableextensions nie jest potrzebne w tym skrypcie dodałem je tak na “zapas”


    set ok_=true

    True można zastąpić jakimkolwiek ciągiem ogólnie wszystko rozbija się o użycie )else(
    żeby estetycznie wyglądało


    ping 212.77.100.101 -n 1 %1|find “Host docelowy jest”>nul||set ok_=

    FIND wyszukuje czy polecenie PING wyświetla ciąg “Host docelowy jest”

    Tutaj masz bardziej czytelny skrypt opierający się
    na kodzie wyjściowym %errorlevel% polecenia FIND

    @echo off
    ::
    :net
    ping 212.77.100.101 -n 1 |find "Host docelowy jest">nul
    IF %errorlevel% EQU 0 goto nie
    IF %errorlevel% EQU 1 goto Tak
    ::
    :tak
    echo Poˆoäczenie jest aktywne
    :: Dalsze polecenia
    call :sleep 6
    goto net
    ::
    :nie
    echo Poˆoäczenie nie jest aktywne
    :: Dalsze polecenia
    call :sleep 6 :: 10 sek.
    goto net
    ::
    ::
    :beep
    :: Sprawdzałem tylko w xp
    rundll32 user32.dll,MessageBeep
    goto :EOF ::Return w bat
    ::
    :sleep
    FOR /l %%a in (%~1,-1,1) do (
    ping -n 2 -w 1 127.0.0.1>NUL)
    goto :EOF

  896. Witam,
    Ma ktoś pomysł jak przerobić ten skrypt:
    for /f "delims=" %%a in ('dir "c:\nazwa pliku" /s/a/b ^| find /i "nazwa pliku"') do (
    copy "%%a" "C:\Nowy123\"
    )

    Tak aby znalazł wszystkie pliki o podanej nazwie i formacie a następnie skopiował je do folderu C:\Nowy123, a nie tylko pierwszy na ktory sie natknie.
    Mam nadzieje, że wiecie o co mi chodzi i z góry dzięki za pomoc:)

  897. Darek

    set /A L=!L!+1

    Zmienia nazwę kopiowanych plików na:
    1_plik.txt
    2_plik.txt
    3_plik.txt


    @echo off & setlocal enabledelayedexpansion
    ::
    for /f "delims=" %%a in ('
    dir "c:\nazwa pliku" /s/a/b ^| find /i "nazwa pliku"') do (
    set /A L=!L!+1
    copy "%%a" "C:\Nowy123\!L!_%%~nxa"
    )

  898. e4nd Brawa dla Ciebie!:D Wszystko działa pięknie ładnie:) chyba wisze Ci zimnego browara:P

  899. Witam chce uruchomić polecenia:
    net config server na stacji zalogowanej w domenie przez użytkownika.
    Ale nie mogę pojawia się błąd z uprawnieniami do cmd. Jak zrobić by wszyscy użytkownicy domeny mieli uprawnienia do uruchomienia cmd dającego możliwość wykonania polecenia net config server
    Dzięki
    na windows xp pro

  900. A ja mam prośbę, potrzebuje skrypt który opróżni mi katalogi:
    - temp
    - prefetch
    Z katalogu windows..
    Jeżeli można, to żeby kasowało wszystkie pliki, ale bez tych, które są zablokowane (np od avasta)

  901. Marcin:
    del "C:\Windows\*.*"
    Powinno zadzialac, bo jeśli niektóre pliki są naprawde zablokowane to skasować ich nie powinno choć w 100% pewien nie jestem:)

  902. ups walnołem sie;( a niestety tutaj chyba nie ma opcji edytuj:(
    Prawidłowy skrypt to:
    del "C:\Windows\temp\*.*"
    del C:\Windows\prefetchy\*.*"
    a przynajmniej tak mi sie wydaje:)

  903. kkpc Mógłbyś dać screen błędu.

    Sposoby na ominięcie blokady:

    Znak zachęty wiersza polecenia został wyłączony przez administratora

    Windows Registry Editor Version 5.00
    ;0 - pozwala na wszystko
    ;1 - wyłącza pliki wsadowe
    ;2 - wyłącza pliki wsadowe i uruchamianie cmd
    ;
    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
    „DisableCMD”=dword:00000002

    Start >> uruchom

    ftp >> !net config server


    @cmd /c net config server


    @ftp -i -s:"%~f0"&goto:EOF
    !net config server

  904. kkpc
    Nie pomyślałem o najprostszym sposobie że w XP jest
    jeszcze command.com :-)

    set oShell = CreateObject("WScript.shell")
    oshell.run "command.com /K net config server"

    VBS do zmiany blokady w rejestrze

    Dim Input
    Dim WshShell, bKey
    Set WshShell = WScript.CreateObject("WScript.Shell")
    '
    Input = InputBox("Wybierz opcje:" & vbCrLf & vbCrLf & _
    "0 - pozwala na wszystko" & vbCrLf & vbCrLf & _
    "1 - wyłącza pliki wsadowe i uruchamianie cmd" & vbCrLf & vbCrLf & _
    "2 - wyłącza uruchamianie cmd" & vbCrLf)
    '
    WshShell.RegWrite "HKCU\Software\Policies\Microsoft\Windows\System\DisableCMD", ""& Input, "REG_DWORD"
    '
    bKey = WshShell.RegRead("HKCU\Software\Policies\Microsoft\Windows\System\")
    WScript.Echo WshShell.RegRead("HKCU\Software\Policies\Microsoft\Windows\System\DisableCMD")

  905. Przygotować projekt skryptu umożliwiający zarządzanie użytkownikami i grupami, jego opcje to:
    - wyświetlanie listy użytkowników,
    - wyświetlanie listy grup,
    - dodawanie i kasowanie pojedynczego użytkownika,
    - dodawanie i kasowanie pojedynczej grupy,
    - dodawanie i usuwanie użytkowników do/z grupy,
    - automatyczne zakładanie kont i grup.

    potrzebuje to jeszcze na dzisiaj, mógłby ktoś pomóc ?

  906. Piotrek za free nikt ci nie zrobi. Moge zrobic za drobna oplata w wysokosci 20zl

  907. Dodawanie i usuwanie uzytkownikow z danej grupy
    Znalazłem chwile wolnego czasu (w końcu) i naskrobałem ten skrypt.

    Linki do sformatowanego skryptu
    Serwer1
    Serwer2


    @echo off & setlocal enabledelayedexpansion
    ::
    :localgroup
    cls
    echo Dodawanie i usuwanie uzytkownikow z danej grupy
    for /l %%e in (1,1,2) do echo.
    for /f "skip=4 delims=*" %%a in ('net localgroup ') do (
    set G=%%a
    set /a P=!P!+1
    rem Przypisanie zmiennej danej grupie
    if !P!==1 set _1=%%a
    if !P!==2 set _2=%%a
    if !P!==3 set _3=%%a
    if !P!==4 set _4=%%a
    if !P!==5 set _5=%%a
    if !P!==6 set _6=%%a
    if !P!==7 set _7=%%a
    if !P!==8 set _8=%%a
    if !P!==9 set _9=%%a
    rem Usunięcie wyświetlania "Polecenie..."
    if /i "!G!"=="Polecenie zostaˆo wykonane pomy˜lnie." (
    set G=
    set P=----------------------------------------
    )
    rem Wyświetlenie listy grup
    echo !P! !G!
    )
    rem Wybieranie grupy
    set /p "wybor=Wybierz grupe: "
    for %%w in (1 2 3 4 5 6 7 8 9) do if "%wybor%"=="%%w" (
    set W=!_%%w!
    goto :grupa
    ) else (
    cls
    echo Brak grupy o tym numerze
    )
    )
    call :sleep 10 & goto :localgroup
    ::
    :grupa
    cls
    echo Grupa %W%
    echo.
    for /f "skip=6 delims=*" %%l in ('net localgroup %W%') do (
    set G=%%l
    set /a P=!P!+1
    rem Usunięcie wyświetlania "Polecenie..."
    if /i "!G!"=="Polecenie zostaˆo wykonane pomy˜lnie." (
    set G=
    set P=----------------------------------------
    )
    rem Wyświetlanie listy użytkowników grupy danej grupy
    echo !P! !G!
    )
    rem Opcje
    echo.
    echo [1] - Dodaj
    echo [2] - Usun
    echo [3] - Powrot
    set /p polecenie=:
    if "%polecenie%"=="3" (
    goto :localgroup
    )
    echo Nazwa uzytkownika:
    set /p uzytkownik=:
    if "%polecenie%"=="1" (
    net user %uzytkownik% /add
    )
    if "%polecenie%"=="2" (
    net user %uzytkownik% /delete
    )
    )
    )
    call :sleep 4
    goto :grupa
    :sleep
    FOR /l %%a in (%~1,-1,1) do (
    ping -n 1 -w 1 127.0.0.1>NUL)
    goto :EOF

  908. prośba o pomoc w rozwiązaniu problemu:
    kopie bezpieczeństwa mogą generować logi, maile. problem zaczyna sie gdy jest tego juz troche i nie do końca chce mi sie sprawdzac na poczcie czy wszystkie kopie zostały wygenerowane.
    chciałbym w skrypcie sprawdzić czy plik kopii został utworzony w ostatnich 6 lub 24 godzinach.
    pozdrawiam

  909. Grzesław napisz coś bardziej konkretnie.
    Napisałem skrypt który wyświetla pliki utworzone w ciagu ostatnich 6 godzin.

    @echo off
    set D=%date:~0,4%-%date:~5,2%-%date:~8,2%
    set A=%time:~0,2%:%time:~3,2%
    set G=%time:~0,2%
    ::
    if %G% EQU 0 set G=24
    ::
    set /a W=%G%-6
    ::
    if %W% LSS 0 (
    if %G% EQU 1 set W=19
    if %G% EQU 2 set W=20
    if %G% EQU 3 set W=21
    if %G% EQU 4 set W=22
    if %G% EQU 5 set W=23
    )
    ::
    echo.
    echo Pliki utworzone dzisiaj w ciagu ostatnich 6 godzin
    echo ------------------------------
    for /f "delims=" %%r in ('dir /s /b ^| find /i "txt"') do (
    if "%%~tr" GEQ "%D% %W%:%time:~3,2%" (
    echo %%~tr %%~nxr
    )else (
    rem echo %%r
    ) )
    pause>nul

  910. e4nd dzięki serdeczne ten skrypcik posłuży mi w innych celach.
    Natomiast koncepcja jest taka.
    - komputer wykonuje kopie plików.
    - zakładam że wszystkie kopie robię w jeden dzień.
    - komputer dopisuje się do logu dziennego na serwerze (umieszcza nazwę kompa w logu, umieszczenie nazwy kompa w logu oznacza sukces).
    - po wykonaniu wszystkich kopii serwer odpala skrypt sprawdzający czy wszystkie nazwy komputera znajdują się w dziennym logu

  911. Nie mam pomysłu na ten skrypt gdybyś wrzucił jakiś kawałek skryptu
    było by mi łatwiej i nie poruszał się jak dziecko we mgle :-)

    Kawałek jak ja to widzę

    @echo off
    ::
    for /f "delims=" %%x in (lista_komputerow.txt) do (
    rem
    rem kopiuje pliki
    rem
    copy plik "\\%%x\c$\" >nul
    if not exist "\\%%x\c$\plik" (
    rem
    rem ( jeśli nie istnieje)
    rem
    echo %%x nie zalogowany
    )else (
    rem
    rem ( jeśli istnieje)
    rem
    echo %%x zalogowany
    echo %%x>>log.txt
    ) )
    pause

  912. Witam,
    mam mały problem. Wiem jak utworzyć folder z dzisiejszą datą w nazwie. Ale nie mogę dojść jak skopiować tam odpowiednie pliki np z pulpitu.

    @echo off
    xcopy C:\Users\mlody\Desktop\*.* md C:\Users\G\Desktop\%date:~3,10% /V /Y /E /H /G

    To nie działa, możecie mi pomóc?
    Pozdrawiam

  913. ok nie ma tematu. Mam już wszystko;)

  914. code
    @echo off
    dir c:\drivers /b | FIND “komp1.log” /i > nul
    IF %errorlevel% EQU 1 goto alarm
    ECHO OK sprawdzam nastepny
    dir c:\drivers /b | FIND “komp2.log” /i > nul
    IF %errorlevel% EQU 1 goto alarm
    ECHO OK sprawdzam nastepny
    dir c:\drivers /b | FIND “komp3.log” /i > nul
    IF %errorlevel% EQU 1 goto alarm
    rem notepad.exe
    GOTO :END
    cls
    :alarm
    echo alarm
    :END
    code
    w taki sposób to rozwiązałem. Ale posiedzę sobie i ulepszę o Twój pomysł z pętlą i listą kompów.

  915. Przepraszam

    echo Człowiek się uczy ;)

  916. To samo co wyżej tylko dodałem kolorowaną składnie i sygnał beep przy nieistniejącym pliku.
    Może nic nie wnosi do tematu ale cieszy oko ;)

    @echo off
    ::
    findstr.exe /? >nul 2>&1 || Goto Help
    ::
    call :KolorTekst 0C "Czerwony"
    echo -plik nie istnieje
    call :KolorTekst 0A "Zielony"
    echo -plik istnieje
    echo.
    ::
    for /l %%a in (1,1,10) do (
    if exist c:\drivers\komp%%a.log (
    call :KolorTekst 0A "komp%%a"
    echo.
    )else (
    call :KolorTekst 0C "komp%%a"
    echo.
    rundll32 user32.dll,MessageBeep
    ) )
    pause>nul
    exit & goto :EOF
    ::
    :KolorTekst
    for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
    set "DEL=%%a"
    )
    set /p "= " > "%~2" <nul
    findstr /v /a:%~1 "^$" "%~2" nul
    set /p "=" <nul
    nul 2>nul
    goto :EOF
    ::
    :Help
    echo Brak pliku findstr.exe w katalogu %systemroot%\SYSTEM32
    pause>nul

  917. Formatowanie wcieło kawałek skryptu
    tutaj daje link do skryptu
    Chodzi o ten kawałek

    set /p "= " > "%~2" <nul
    findstr /v /a:%~1 "^$" "%~2" nul
    set /p "=" <nul
    set /p ".=%DEL%%DEL%"nul
    goto :EOF

  918. Witam,
    Chciałem zrobić skrypt, który by łączył się przez telnet z IP a potem wykonywał odpowiednie polecenia SAM. I żeby działał w tle.
    czyli tresc bata byłaby np. taka:
    telnet IP
    USER
    HASŁO
    polecenie 1,
    polecenie 2,…..
    quit / exit

    Wiem jak zrobić plik który to wykona, ale jest to widoczne na pulpicie. (używam dodatkowo vbs’a). Jakieś rady jak to zrobić, żeby działało w tle i niemusiałbym czekać aż wszystko wykona? Bo teraz działanie jest identyczne jakbym sam to robił.
    Proszę o pomoc.

    Paweł

  919. Paweł
    Może dodaj skrypt do auto startu albo uruchom jako usługę

    > "%Temp%.\regfile.reg" ECHO REGEDIT4
    >>"%Temp%.\regfile.reg" ECHO
    >>"%Temp%.\regfile.reg" ECHO [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
    >>"%Temp%.\regfile.reg" ECHO "skrypt"="C:\skrypt\skrypt.bat"
    regedit /s "%Temp%.\regfile.reg" >nul
    "%windir%\regedit.exe" /s "%Temp%.\regfile.re" >nul
    del /F /Q "%Temp%.\regfile.reg" >nul

    Napisałem skrypt który ukrywa okno bat.
    W zmiennej set file_= wpisz nazwę swojego pliku bat

    @echo off & setlocal enabledelayedexpansion
    ::
    :: Skrypt ukrywający okno plików BAT by e4nd
    ::
    set file_=plik.bat
    ::
    call :Backup
    call :Replace
    ::
    :VbsCreate
    (
    echo Dim oShell
    echo set tmp = CreateObject^("Scripting.FileSystemObject"^)
    echo set File = tmp.CreateTextFile^("tmp.bat", ForWriting^)
    ) >>%ext%.vbs
    call :ReadFile
    (
    echo File.close
    echo Set oShell = WScript.Createobject ^("WScript.Shell"^)
    echo oShell.run "cmd /C tmp.bat" ,0
    echo Set oShell = Nothing
    ) >>%ext%.vbs
    pause
    endlocal & goto :EOF
    ::
    :ReadFile
    ::Dodaje do każdej linii File.WriteLine ("polecenie z pliku bat")
    for /f "tokens=* delims=" %%r in ('type "tmp"') do (
    echo File.WriteLine("%%r"^)>>%ext%.vbs
    )
    del /q tmp
    goto :EOF
    ::
    :Backup
    ::Tworzy kopie pliku
    for %%c in (%file_%) do (
    if exist %%c (
    copy %file_% %%~nc.BAK>nul
    set ext=%%~nc
    )else (
    echo Brak pliku %file_% w wskazanej lokalizacji
    pause & exit
    )
    )
    goto :EOF
    ::
    :Replace
    :: Zamienia " na ""
    for /f "tokens=* delims=" %%t in (%file_%) do (
    set S=%%t
    set S=!S:"=""!
    echo !S! >>tmp
    )
    )
    goto :EOF

    link w razie złego działania skryptu
    Skrypt ukrywający okno plików

  920. Dzięki e4nd za świetny skrypcik do ukrywania, teraz wiem jak ukryć bata!
    Tylko pozostał jeszcze 1 problem.
    Chodzi o to, że wcześniej nie wiedziałem jak mam ukryć plik i w związku z tym mój vbs do wpisywania np. loginu używał SendKeys do AKTYWNEGO OKNA. Nie mam pojęcia co zrobić, żeby wysłał tekst do odpowiedniego procesu, a w bat chyba się nie da zrobić, żeby wpisywał loginy i hasła sam w tle. Znasz może jakiś sposób na to???

    PS. Jeszcze raz dzięki za ten skrypt bardzo się przyda.

    Paweł

  921. Spróbuj zamiast SendKeys wpisać loginy i hasła do zmiennych w pliku bat
    Najlepiej wrzuć ten plik bat będzie mi o wiele łatwiej ;)

  922. Problem w tym, że po linijce “telnet xx.xx.xx.xx:xx” nie mogę już nic wpisać w bacie – wszystko przestaje działać bo jest uruchamiany nowy proces (telnet.exe) i to w nim są wykonywane wszystkie operacje.

    Oto kod KRÓTKIEGO :p batu ( i tak większość poleceń szła przez SendKeys vbs’a):
    [code]
    @echo off
    set /p adres=<IP.txt
    start SK.vbs
    telnet %adres%

    :D

    Pozdrawiam,
    Paweł

  923. Opiszę Ci to w jaśniejszy sposób. Testuje z kolegą pewne zabezpieczenia tyczące się liveboxa.
    wysyłam mu mały plik vbs, który po otwarciu przesyła mi jego adres MAC. Potem dopisuję ten MAC do pliku SK.vbs włączam bata i robie dalej co chce (gdyby to działało w tle… :/) a kolega sprawdza wyniki.

    Tu masz pseudo-treść SK.vbs:

    [code]
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WScript.Sleep 1000
    WshShell.SendKeys "login"
    WScript.Sleep 1000
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 1000
    WshShell.SendKeys "haslo..."
    WScript.Sleep 1000
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 1000
    WshShell.SendKeys "wlan"
    WScript.Sleep 1000
    WshShell.SendKeys "addstation"
    WScript.Sleep 1000
    WshShell.SendKeys "tu wpisuje maca"
    WScript.Sleep 1000
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 1000
    WshShell.SendKeys "exit"
    WScript.Sleep 1000
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 1000
    [/code]

    Paweł

  924. Niestety nie mam pojęcia jak to wykonać na aktualną chwile tylko to mi przychodzi do głowy

    @echo off
    (
    echo login
    echo haslo
    echo wlan
    echo exit
    )>>Polecenia.txt
    ::
    telnet 192.168.1.103 25 < Polecenia.txt

    znalazłem link może się przyda
    http://www.codeproject.com/Questions/311625/Required-help-on-SendKeys-To-Hidden-Application-Ob

  925. Dzięki za wszeklie rady i za poświęcony czas, pokombinuje z
    telnet 192.168.1.103 25 < Polecenia.txt

    a co do linku to niestety napisali, że możliwości takowej przez SendKeys nie ma. Ale cóż próbuję dalej. Jeszcze raz dzięki za wszelką pomoc. Ewentualnie jakbym był blisko, a będę miał problem to ponownie napisze :)

    Pozdro,
    Paweł

  926. Witam
    Poszukuję jakiegoś skryptu który pobiera nazwę sieciową komputera z pliku txt i wysyła do niego ping. Wynik działania zapisuje do innego pliku txt.

  927. Trochę zagmatwane ale dodałem sprawdzanie czy dany IP jest dostępny/błędny w razie jakiś pytań wal śmiało (jak Polacy gole ;( )

    @echo off
    ::
    for %%f in (IP) do if exist %%f rd /Q /S %%f
    md IP
    for /f "tokens=*" %%a in (nazwy_sieciowe.txt) do (
    set ok_=true
    ping %%a | find /v "˝Ądanie" >nul||set ok_=
    if defined ok_ (
    ping %%a >>IP\%%a.txt 2>&1
    ) else (
    echo Adres %%a jest nie porawny
    )
    )
    pause>nul

  928. hej
    Faktycznie jak dla mnie to więcej niż trochę zagmatwane, poleglem już przy analizie 3 wiersza. Czy możesz zmodyfikować skrypt tak by pobierał kolejno nazwy sieciowe komputerów z pliku txt, wysyłał tylko jeden ping i zapisywał w innyn pliku txt tylko nazwy niedostępnych komputerów.
    Pozdrawiam.


  929. @echo off
    ::
    for %%f in (IP) do if exist %%f rd /Q /S %%f
    md IP
    for /f "tokens=*" %%a in (nazwy_sieciowe.txt) do (
    set ok_=true
    ping %%a | find "˝Ądanie" >nul||set ok_=
    if defined ok_ (
    echo %%a
    echo %%a >>IP\niedostepne.txt
    ) else (
    echo %%a
    ping %%a >>IP\dostepne.txt 2>&1
    )
    )
    pause>nul

    Postaram się tobie to w miarę jasno wytłumaczyć, bo przecież tu nie chodzi o bezmyślne skopiowanie skryptu lecz o przyswajanie wiedzy.

    for %%f in (IP) do if exist %%f rd /Q /S %%f
    -Pętla for podmienia zmienną %%f w poleceniu if exist (jeśli istnieje) to
    rd /Q /S (usuń folder wraz plikami znajdującymi się w nim)

    for /f “tokens=*” %%a in (nazwy_sieciowe.txt) do (
    -Pętla pobiera dane wejściowe z pliku nazwy_sieciowe.txt do zmiennej %%a

    set ok_=true
    -Ustawia zmienną ok_

    ping %%a | find “˝Ądanie” nul||set ok_=
    – ping %%a pinguje adres
    – find “˝Ądanie” nul Wyszukuje wszystkie wiersze które zawierają słowo “Żądanie”
    – ||set ok_= potok || przekazuję wynik działania find. Jeśli “find” znalazł słowo “Żądanie”
    “set ok_=” czyści zmienną ok_ na pustą a jeśli “find” nie znalazł słowa “Żądanie”
    pozostawia zmienna “ok_” bez zmian

    if defined ok_
    -Jeśli zmienna “ok_” jest pusta to skrypt przechodzi do “niedostepne”
    -Analogicznie jest w przypadku gdy zmienna “ok_” nie została zmieniona wtedy skrypt skacze do dostepne.

    Myślę że moje wypociny coś ci pomogą d^_^b

  930. Hi moglibyście pomóc, jak zrobić by program odczytywał zmienne z pliku txt i urzył ich?

  931. xcam7 skrypt wczytuje po znaku “=”
    Zawartość plik.txt

    Zmienna1=Fascik
    Zmienna2=homesite


    for /f "tokens=1,2 delims==" %%a in (plik.txt) do (
    if %%a==Zmienna1 set Zmienna1=%%b
    if %%a==Zmienna2 set Zmienna2=%%b
    )
    echo %Zmienna1% %Zmienna2%
    pause>nul

  932. Witam,
    mam taki for (chce wyszukac folderu na dysku, zmienia sie w zaleznosci od komputera)

    for %i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist %i:\libs set drive=%i:\libs\)

    jednak skrypt jest przerywany w momencie napotkania dysku ktorego nie mam…

    wyskakuje komunikat
    w tym momencie I:\libs bylo nieoczekiwane

    prosze o pomoc

  933. Ok rozwiazalem swoj problem
    moze komus sie przyda

    for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%i:\libs\ @set drive=%%i

  934. Pokazuje aktywne dyski łącznie z stacją dyków

    @echo off & setlocal enabledelayedexpansion
    for %%d in (c d e f g h i j k l m n
    o p q r s t u v w x y z) do (
    dir %%d:\ > nul 2>&1
    if !errorlevel! EQU 0 echo dysk %%d
    )
    pause>nul
    endlocal & goto :EOF

  935. witam, używam takiego skryptu do wyszukiwania plików:
    [code]
    set path=d:\
    set findEXE="%windir%\system32\find.exe"
    set elem1=plik1
    set elem2=plik2
    for /f "delims=" %%a in ('dir %path% /s/a/b ^| %findEXE% /i "%elem1%"') do (
    copy "%%a" "d:\backup")
    for /f "delims=" %%a in ('dir %path% /s/a/b ^| %findEXE% /i "%elem2%"') do (
    copy "%%a" "d:\backup")
    [/code]

    problem pojawia sie wtedy gdy jest kilka plików plik1 i plik2 w kilku folderach . Czy ma ktoś rozwiązanie jak to posegregować? dobrze by było żeby zachować strukture katalogów, pamiętam że xcopy miało taką możliwość.prosze o podpowiedz..pozdr

  936. Kopiuje tylko wybrane pliki zachowując strukturę katalogów

    @echo off
    ::
    set IN=D:\
    set OUT=D:\backup
    ::
    for %%? in (plik1.txt plik2.txt plik3.txt plik4.txt plik5.txt) do (
    for /f "delims=" %%! in ('dir %IN% /s /b ^| find.exe /i "%%?"') do (
    xcopy "%%!" "%OUT%\%%~p!"
    )
    )
    pause>nul

    Link do sformatowanego skryptu

    Kopiuje wszystkie katalogi i pliki zachowując strukturę katalogów

    @echo off
    ::
    set IN=D:\xx
    set OUT=D:\backup
    ::
    xcopy /e "%IN%\*.*" "%OUT%\"

    Jeśli będziesz miał jakiekolwiek problemy zapraszam na Dos forum

  937. bardzo dziękuje, a może dało by sie nie kopiować plików jeśli są mniejsze niż np 100kb?
    Znalazłem takie coś

    SET SIZELIMIT=1000
    SET FILESIZE=%~z1

    IF %FILESIZE% GTR %SIZELIMIT% Goto No

    ale ni potrafie tego skleić..

    dzięki

  938. if %%~zf GTR 1024 kopiuje pliki większe od 100KB (102400 bajtów)
    %%~z! rozwija zmienną %%f do rozmiaru pliku.

    @echo off
    ::
    set SIZE=102400
    ::
    set IN=D:\
    set OUT=D:\backup
    ::
    for %%? in (plik1.txt plik2.txt) do (
    for /f "delims=" %%! in ('dir %IN% /s /b ^| find.exe /i "%%?"') do (
    if %%~z! GTR %SIZE% (
    xcopy "%%!" "%OUT%\%%~p!"
    ) ) )
    pause>nul

  939. Witam, czt jest możliwość kopiowania plików zawartych w pliku.txt.
    co w przypadku zerwania połaczenia? czy da sie wznowić od ostatniego skopiowanego?- przypuscmy ze ma wysyłac po ftp?
    thx

  940. Ten kawałek skryptu tylko kopiuje pliki na serwer i tworzy plik z ostatnim wysłanym plikiem.
    Pisałem ten skrypt tak na “czuja” bo nie wiedzieć czemu mam zablokowane porty ftp
    Jeśli chodzi o wznowienie wysyłania plików to postaram się coś wymyślić jak się dorwę do innego komputera.

    @echo off
    ::
    set host=
    set user=
    set pass=
    ::
    set files=pliki.txt
    ::
    echo user %user% %pass%>dat
    ::
    for /f "delims=" %%a in (%files%) do (
    echo put "%%a">>dat
    if errorlevel = 1 echo [N]%%a>ostatni.txt
    if errorlevel = 0 echo [W]%%a>ostatni.txt
    )
    )
    echo quit>>dat
    ::
    ftp -n -s:dat %host%
    ::
    pause

  941. witam…powiem wprost nie mam zielonego pojecia na temat scrytow win…ale chcial bym wrzucic mu scrypt tworzacy 2 kursor myszy (2 kierowany za pomoca klawiatury numerycznej…i chcial bym tylko wiedziec czy jest on poprawny..i gdzie … jak dokladnie (jak dla idioty go wrzucic..Z GORY DZIEKUJE … oto ten scrypt:

    eg. to add a second cursor controlled by the keyboard:

    Cursor2.Visible = true
    Cursor2.LeftButton = Key.LeftCtrl
    Cursor2.RightButton = Key.RightCtrl
    Cursor2.CursorPosX = var.x2
    Cursor2.CursorPosY = var.y2
    if Key.RightArrow then var.x2++
    if Key.LeftArrow then var.x2–
    if Key.UpArrow then var.y2–
    if Key.DownArrow then var.y2++

  942. no kurcze nie ma zadnego madrego ktory oswieci mnie jak to zrobic??? ….. jak cos na windowsie….. xp sp3 prof.

  943. Ten przykład co podałeś nie jest żadnym skryptem wykorzystywanym w jakiejkolwiek wersji Windows’a.

    Bez zewnętrznych programów się nie obejdzie.

    Ps. Tak z ciekawości po co ci obsługa dwóch kursorów?

  944. hmm.. pisza ze to skrypt..i wiem ze to dziala .. ale nie mam pojecia jak to odpalic.. a 2 kursory mi sa potrzebne….gram sobie w taka gierke…puszczam bota .. i ten bot centralnie kozysta z kursora,,, czyt.. jak on lata nic nie mozna w tym czasie robic przy komputerze.. bo on korzysta z kursora.. dlatego potrzebuje 2,, 1 dla niego.. 2 dla siebie (btw programiki typu team player na 2 myszki nie pomagaja )

  945. Witam,
    zna ktoś może sposób na to, aby przy otworzeniu każdego pliku z danym rozszerzeniem (np. mp3 albo exe obojętne) włączał się dodatkowo skrypt .bat?? chodzi o to, aby włączył się normalnie i ten plik z rozszerzeniem i bat.
    PS. Próbowałem coś z ftype i exefile ale nie wszystkie pliki exe się włączają.

  946. Paweł do tego celu używa się programów tzw “binder’ów”. Służą one do łączenie różnych typów plików w jeden.

  947. Niezupełnie o to mi chodziło. Tak jak powiedziałeś bindery służą do łączenia różnych plików w jeden. Lecz abym osiągnął swój cel musiałbym zbindować wszystkie pliki exe na kompie, a nie oto mi chodzi. Wybacz jeżeli się nie sprecyzowałem. Chodziło mi o sytuację, np. że przy każdym włączeniu jakiegokolwiek pliku exe czy to na kompie czy z pendriva bat wyświetla mi komunikat że włączono taki i taki exe, a ten program(exe) się poprostu normalnie włącza i pracuje.

  948. A z tym ftype to próbowałem tak, że gdy uruchomiono exefile to włączał się bat który jako %1 przyjmował ścieżkę exe’ka wyświetlał komunikat i włączał %1. tylko, że ta metoda nie działa dla wszystkich plików (dlaczego nie wiem) np. notatnik się włącza, a gdy włączę np. Code::Blocks to bat się “pętluje” i leci cały czas od nowa…

  949. Hej spryciarze, jak zrobić, żeby system wyliczył mi datę wczorajszą?
    Wiecie, take coś, typu datawczoraj=(datadzisiaj – 1)

    Tylko z linii poleceń cmd, a jak się nie da, to może ktoś podpowie, jak to wyliczyć prostym skryptem VBA (tu to jestem całkiem zielony) , żeby mi wynik podłożyło do zmiennej, którą mogę zastosować potem w cmd

    hmm?

  950. W samym skrypcie bat stworzenie tego jest bardzo trudne dlatego że trzeba uwzględnić nietylko wczorajszy dzień ale także miesiąc i rok przestępny.
    Linki do takiego skryptu.
    http://stackoverflow.com/questions/7412623/windows-batch-script-download-yesterday-files
    http://www.robvanderwoude.com/datetiment.php#Yesterday

    Lepszym rozwiązaniem będzie zewnętrzny program StdDate.
    Oto przykład który pokazuje i ustala wczorajszą datę do zmiennej data
    http://www.mediafire.com/?dzv7wn9yipc695w

    @echo off
    StdDate > NUL
    set /A return=%errorlevel%-1
    for /f "delims=" %%a in ('StdDate %return%') do (
    set data=%%a
    )
    echo %data%
    pause

    Napisałem ten skrypt który łączy vbs i bat i według mnie jest to najlepsze rozwiązanie ;)

    @echo off
    set dzien=%DATE:~8,10%
    set miesi=%date:~5,2%
    set rok=%date:~0,4%
    ::
    > $$$.vbs echo WScript.Echo ^("" ^& DateSerial^(%rok%, %miesi%, %dzien% -1^)^)
    ::
    for /f "tokens=*" %%t IN ('cscript.exe //NoLogo $$$.vbs') do (
    set wczoraj=%%t
    del $$$.vbs>nul
    )
    ::
    echo %wczoraj%
    pause

  951. Faktycznie, to jest najlepsze.
    Pisałem skrypt, który uruchamia mi raport w sql, czasem musi to być na danych z wczoraj, czasem z całego zeszłego tygodnia kalendarzowego, niezależnie od tego jaki mamy dziś dzień.
    W międzyczasie musiałem już sobie radzić, więc wyskrobałem na piechotę, że dostaję nazwę dnia tygodnia (skryptem vbs z tej fajnej stronki), z tego zrobiłem numer dnia w batchu, potem wyliczam ile dni mam do poprzedniego poniedzałku i poprzedniej niedzieli, a potem już wylicza mi już samo zapytanie sql, przedział dat za pomocą datediff. Strasznie to wygląda, więc tu ze wstydu nie wrzucam, ale działa.
    Ale jak mam tutaj Twoje wyliczenie dnia, to teraz to wszystko wywalę i zrobie jeszcze raz.
    Dzięki Wielkie Mistrzu.
    Również za te linki, bo też pouczające.
    Ta radość, gdy ktoś pomoże…
    Ten smak porażki, gdy sam nie umiałem…

  952. Jak mogę sprawdzić lokalizację uruchomionego pliku bat(albo innego pliku, który uruchomił cmd), widząc jedynie cmd.exe w procesach?

    Odrazu mówię (co pewnie wiecie), że otwórz lokalizację pliku pokaże mi cmd.exe :)

    Z góry dzięki

  953. Plik wsadowy o nazwie pierwszy.bat wywołujący nazwę drugi.bat który usuwa pliki bedące parametrami pliku pierwszy.bat

    copy con pierwszy.bat
    @echo off
    if “%1″==” ” goto info
    :start
    if “%1″== ” ” goto koniec
    call drugi.bat %1
    shift
    goto start
    :info
    echo brak argumentu
    :koniec
    pause

    i teraz ten drugi

    copy con drugi.bat
    del %1>NUL
    echo usunięto %1

    i jak teraz sprawdzić czy te parametry pliku pierwszy.bat są usuniete

  954. Pokazuje ścieżkę do uruchomionego pliku bat.

    @echo off & setlocal enableextensions
    echo %~f0
    pause>nul
    endlocal & goto :EOF

    Artur powinieneś zastosować if exist %1 goto dalsze polecenia.

    Ps. Dlaczego chcesz tak skomplikować sprawę używając tych dwóch plików ? ;)

  955. Dzięki e4nd!

    PS. Znalazłem jeszcze jedną metodę:

    @echo off
    echo %~dpnx0
    pause >nul

    Czym ona się różni?????

  956. Są to połączone modyfikatory zmiennej

    @echo off
    echo %~dpnx0
    echo.
    echo %~d0%~p0%~nx0
    echo.
    echo %~d0
    echo %~p0
    echo %~nx0
    pause >nul

    Drugi przykład czasami się przydaje ;)
    @echo off & setlocal enableextensions
    echo %%~f0 %~f0
    echo %%~d0 %~d0
    echo %%~p0 %~p0
    echo %%~n0 %~n0
    echo %%~x0 %~x0
    echo %%~s0 %~s0
    echo %%~a0 %~a0
    echo %%~t0 %~t0
    echo %%~z0 %~z0
    pause>nul
    endlocal & goto :EOF

    Wszystko jest opisane w “for /?”

    %~I Rozwija zmienną %I, usuwając wszelkie otaczające ją cudzysłowy ("").
    %~fI Rozwija zmienną %I do pełnej kwalifikowanej nazwy ścieżki.
    %~dI Rozwija zmienną %I tylko do litery dysku.
    %~pI Rozwija zmienną %I tylko do ścieżki.
    %~nI Rozwija zmienną %I tylko do nazwy pliku.
    %~xI Rozwija zmienną %I tylko do rozszerzenia nazwy pliku.
    %~sI Rozwija ścieżkę tak, aby zawierała tylko krótkie nazwy.
    %~aI Rozwija zmienną %I do atrybutów pliku.
    %~tI Rozwija zmienną %I do daty i godziny pliku.
    %~zI Rozwija zmienną %I do rozmiaru pliku.
    :
    %~dpI Rozwija zmienną %I tylko do litery dysku i ścieżki.
    %~nxI Rozwija zmienną %I tylko do nazwy pliku i rozszerzenia nazwy.
    %~fsI Rozwija zmienną %I tylko do pełnej nazwy ścieżki z krótkimi nazwami.
    %~dp$PATH:I Wyszukuje katalogi wymienione w zmiennej środowiskowej PATH dla zmiennej %I i rozwija do litery dysku i ścieżki pierwszego znalezionego katalogu.
    %~ftzaI Rozwija zmienną %I do wiersza wyjściowego podobnie jak w przypadku polecenia dir.

    Zapraszam na http://www.dosforum.pl/

  957. Proszę o informację w kwestii polecenia findstr
    czy zwraca ono tylko linię z wyszukiwanym tekstem czy też sam poszukiwany fragment
    Dajmy na to jeśli szukam słowa w pliku tekstowym a jest on w zdaniu (linijce) to wynik poszukiwania zwróci mi słowo czy zdanie je zawierające?
    A jeśli tylko samo słowo to jak to zrobić?

  958. Jeśli mógłbyś napisać do czego chcesz użyć findstr byłoby znacznie łatwiej ;)
    Polecenie findstr zwraca całą linijkę z szukanym ciągiem.

    Przykładowy skrypt wyszukujący wyraz “słowo” w pliku txt.
    Działa on poprzez zmienianie “tokens” na wyższy.

    @echo off & setlocal enabledelayedexpansion
    ::
    set source=plik.txt
    set string=slowo
    ::
    :loop
    set/a P+=1
    call :_for !P!
    if !P!==20 pause>nul
    goto loop
    ::
    :_for
    for /f "tokens=%1*" %%a in ('findstr "%string%" %source%') do (
    if %%a==%string% echo tokens%1 %%a
    )
    goto :EOF

    Plik.txt

    --------- slowo --------- slowo ---------
    --------- slowo --------- slowo ---------

  959. Chciałem “wyłuskać” fragment z linijki zwracanej przy użyciu toola DevCon:
    http://support.microsoft.com/kb/311272/hr

    devcon listclass diskdrive | findstr ":*"

    w powyższym przypadku to tylko przykład znalezienia i wyświetlenia samego tekstu który znajduje się zaraz za dwukropkiem.
    Domyślnie polecenie wyświetla więcej informacji, a mnie interesuje tylko fragment.
    Ale skoro polecenie zwraca całą linijkę… :(

  960. Było tak od razu napisać ;) 5 minut i gotowe
    Wyświetla zainstalowane dyski.

    @echo off
    for /f "tokens=1,2 delims=:" %%a in ('devcon listclass diskdrive') do (
    echo.%%b
    )
    pause>nul

    Przykład zasady działania powyższego skryptu

    @echo off
    (
    echo username=owner
    echo password=mypass
    )>>config.ini
    ::
    for /f "tokens=1,2 delims==" %%a in (config.ini) do (
    if %%a==username set username=%%b
    if %%a==password set password=%%b
    )
    echo %username%
    echo %password%
    pause

  961. Witam.
    mam coś takiego:
    xcopy %SystemRoot%\system32\config\AppEvent.Evt \\sciezka do zdalnego katalogu\%computername%_%Date%\Aplikacja.evt
    xcopy %SystemRoot%\system32\config\SecEvent.Evt \\sciezka do zdalnego katalogu\%computername%_%Date%\Zabezpieczenia.evt
    xcopy %SystemRoot%\system32\config\SysEvent.Evt \\sciezka do zdalnego katalogu\%computername%_%Date%\System.evt

    Dziala, ale…
    Wyedytowany plik *.evt wygląda bardzo nieczytelnie.
    Można go przy kopiowaniu zkonwertowac do *.txt

  962. Pliki evt można otworzyć i zapisać w eventvwr.msc. Lub programami:
    tracerpt
    LogParser

  963. A nie mozna od razu zmusic konsole do zapisu w txt?

  964. potrzebuje na teraz kilku skryptow:
    1. skrypt ktory zamieniaatrybut pliku podanego jako parametr ukryty
    2. skrypt ktory utworzy katalogi zgodnie z lista znajdujacych sie w pliku lista.txt i wyswietli drzewo tych katalogow\
    3.skrypt ktory przy kazdym wywolaniu bedzie dopisywal liste plikow z rozszerzeniem *.bat

    Za pomoc dziekuje

  965. Ad.1

    attrib +h "Plik"

    Ad.2

    @echo off
    ::
    for /f "delims=" %%? in (lista.txt) do (
    if not exist %%? md %%?
    for %%! in (%%?) do echo %%!
    echo -==-==-==-==-
    )
    pause>nul

    Ad.3

    dir *.bat /s /b >>lista_plikow.txt

    Maciek zainstaluj program LogParser można tam zdalnie pobierać logi.
    Przykład zapisujący log w pliku csv.

    LogParser.exe -fullText:OFF -o:CSV -tabs:OFF "SELECT * INTO output.csv FROM \\SERVER2\System, \\SERVER2\Application, \\SERVER2\Security"

  966. Mam pytanie o składnię %time:~0,2% itp.
    Co to jest to :~ ?

    Próbowałem szukać w google, ale to za krótki skrót, widzę tu też przykłady z liczbami ujemnymi i np. %time:~-2% zwróci ostatnie 2 cyfry czyli setne sekundy.
    I ogólnie chodzi mi też o inne operatory | || itp. żeby wiedzieć jak to działa.

    Odnośnie skryptu: “Monitor prędkości połączenia sieciowego”
    To się powinno “zawiesić” po 2GB danych. Napisałem sobie skrypt bazujący na tym i siada po ok. 2 100 000 000 bajtów z błędem, o 32-bitowej precyzji i teraz chcę to poprawić, po prostu wytnę ostatnie np.6 cyfr i starczy (problem że jedna liczba może mieć 9 a druga 10 cyfr).

  967. Witam,

    Mam pytanie: jak ze ścieżki
    c:\work\mama\puls\cos\cos2\plik
    zapamiętać do parametrów cos, cos2 i plik?
    chce skopiować “plik” do
    c:\work\mama\puls2\cos\cos2\plik następnie do
    c:\work\mama\puls3\cos\cos2\plik itd.

    W tej chwili wywołując skrypt podaje te parametry z palca, a chciałabym, aby tworzyły się ze ścieszki same.

    Z góry dziękuje za pomoc:)

  968. Powinno zadziałać ;)

    @echo off & setlocal enabledelayedexpansion
    ::
    for /f "tokens=4* delims=\" %%a in ("c:\work\mama\puls\cos\cos2\*.*") do (
    set po_plus=%%b
    )
    :loop
    ::
    set I="c:\work\mama\puls\cos\cos2\*.*"
    ::
    set/a L+=1
    ::
    if not exist c:\work\mama\puls!L! goto koniec
    copy %I% c:\work\mama\puls!L!\%po_plus%
    ::
    goto :loop
    ::
    :koniec
    cls
    pause>nul|set /p "=Brak folderu puls!L!. . ."<nul &exit(

  969. Dzięki bardzo:) Udało mi się osiągnąć cel.
    Bardzo serdecznie dziękuje ;D

  970. witam, PROSZĘ O ODPOWIEDŹ MAILEM!

    mam pytanie, jak zdefiniować pulpit, czy to podobne do “%windir%”? potrzebuję jak najszybciej, i czy “pulpit” da się zdefiniować w szybszy sposób niż (np.) : C:/documents and settings/all users . ponieważ potrzebuję żeby skrypt definiował dla obecnego urzytkownika jego pulpit, czyli ten kto otworzył ten ma wynik (nie będę tego wszystkiego opisywał bo trochę tego jest :) np. plik txt na swoim pulpicie. POTRZEBUJĘ TEGO JAK NAJ SZYBCIEJ!!!!!!! dziękuję i pozdrawiam :)

  971. Na górze jest ładny czerwony napis, więc nie wymagaj że ktoś odpowie. Pomocy można szukać na dostips.com/, bo niestety Kotsai zamkną dosforum.pl :(

    Poniżej odpowiedź na twoje pytanie

    %UserProfile%\Pulpit\jakiś plik.txt

  972. e4nd :) Dzięki wielkie za Twoją pomoc przy odpowiadaniu na pytania.

    Tak napisałem wcześniej – nie zamierzam dalej rozwijać zarówno tego działu jak i strony. Powód jest prozaiczny – brak czasu. Choć “batche” powoli odchodzą do lamusa na rzecz PS-a to czasami skryptuję na własne potrzeby.

    Mam nadzieję, że zrozumiecie moją decyzję.

    Piotrek Romański

  973. Tylko nie kasuj strony – wiesz jak ciężko znaleźć coś o BATach teraz na necie?

  974. llelewel – strona zostaje :) Bez obaw.

  975. Witam,

    Jak zapewne wiecie w zasadach grupy w Win7 by wykonać komendy w trakcie logowania lub wylogowania z pliku muszą one być napisane w formie skryptu.

    W związku z tym mam pytanie czy ktoś ma jakiś automat by z pliku CMD automatycznie przekonwertować zawartość do VBS lub powershella? ów CMD jest dość długi i skomplikowany i po za normalnymi komendami “dosowskimi” typu if, copy del, md, set itd. również wykonuje pliki wykonywalne exe ze zwrotem kodu błędu. Jak pomyślę, o tych 200 linijkach które są w owym cmd i że mam je od początku ręcznie napisać w vbsie to efekt jest taki że zabieram się do tego od pół roku.

    Pozdrawiam.

  976. Czy mógłby mi ktoś napisać kilka (lub więcej) linijek kodu, które zapisane w rozszerzeniu .bat będą ukrywać plik ol.vbs i ol.bat, które są w C:/Users/ i dodawać ol.vbs do autostartu?
    Z góry dziękuję

Zostaw odpowiedź