logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

dir /s - szukanie pliku / folderu, i obsługa błędu, jeśli plik nie znaleziony

bicik4096 24 Lut 2017 22:47 3708 9
REKLAMA
  • #1 16304974
    bicik4096
    Poziom 4  
    Posty: 726
    Ocena: 7
    Witam

    Proszę o podpowiedź, bo tak siedzę i siedzę i jakoś nie umiem tego tknać. Ledwo liznąłem .bat-a

    W pliku test.bat mam taki kod:

    @Echo. off
    dir /s "C:\MAC.txt"

    Chciałbym aby mój skrypt test.bat, po znalezieniu pliku o tej nazwie ( MAC.txt ), wylistował bezwzględną ścieżkę do niego.
    Lub po prostu aby było warunkowanie. Że TRUE jak znalazł, i FALSE jak nie znalazł.

    Nie wiem jak to zrobić, aby głęboko szukał i były warunku w kodzie.

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

    Udało się :) Ale częściowo :]

    Dodano po 29 [minuty]:

    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    Udało się, jest obsługa błędów więc i warunkowanie :)
    Brakuje mi tylko odpowiedzi na to jak wylistować znalezioną ścieżkę do pliku ? :]
  • REKLAMA
  • #2 16305227
    bogiebog
    Poziom 43  
    Posty: 24793
    Pomógł: 2569
    Ocena: 1528
    dir /s /b C:\mac.txt
  • REKLAMA
  • #3 16305230
    bicik4096
    Poziom 4  
    Posty: 726
    Ocena: 7
    bogiebog napisał:
    dir /s /b C:\mac.txt


    Jak teraz te ścieżkę przypisać do zmiennej ? :> Wyświetliła się na ekranie ścieżka, długa pełna, i jak to teraz przypisać do zmiennej aby sobie dowolnie użyć w .bat ? :>
  • REKLAMA
  • #4 16305334
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Kolega sobie żarty stroi? Mam wrażenie, że dzisiaj 1 kwietnia ;)

    O podstawach programowania plików wsadowych napisano mnóstwo w Internecie. Wystarczy wyszukać: Link i poczytać odrobinkę...

    Patrz Regulamin, pkt. 3.1.17
  • #5 16305774
    bicik4096
    Poziom 4  
    Posty: 726
    Ocena: 7
    adamas_nt napisał:
    Kolega sobie żarty stroi? Mam wrażenie, że dzisiaj 1 kwietnia ;)

    O podstawach programowania plików wsadowych napisano mnóstwo w Internecie. Wystarczy wyszukać: Link i poczytać odrobinkę...

    Patrz Regulamin, pkt. 3.1.17


    Czytałem i rozumiem przypisywanie zmiennej. Nie rozumiem, jak przejąć to co jest wynikiem szukania za pomocą DIR /s. I spędziłem wczoraj sporo czasu i nie znalazłem tak prostej rzeczy. Czasami robiąc X rzeczy, człowiek jest zmęczony, więc i efektywność spada. Większość .batów robiłem i nie było problemów, a z tym prostym przykładem jakoś nie trybie. Przecie musi w jakimś buforze leżeć ten wyszukany string ze ścieżką, w jakiejś tablicy co można pobrać. Nie rozumiem tego.
  • #6 16305816
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    W niemal każdym języku:
    SET nazwaZmiennej = wyrażenie
  • #7 16305829
    bicik4096
    Poziom 4  
    Posty: 726
    Ocena: 7
    
    
    @echo off
    DIR /s /b c:\MAC.txt
    
    
    SET zmienna = DIR /s /b c:\MAC.txt
    
    @echo on
    echo %zmienna%
    
    
    @echo off
    echo errorlevel = %errorlevel%
    
    IF %errorlevel% EQU 1 GOTO ERROR
    IF %errorlevel% EQU 0 GOTO OK
    
    :ERROR
    
    pause
    
    :OK
    
    pause 
    
    



    Nie wiem, nie wyświetla się ścieżka do znalezionego pliku. Tylko coś zupełnie innego.
  • #8 16305934
    bogiebog
    Poziom 43  
    Posty: 24793
    Pomógł: 2569
    Ocena: 1528
    Jeżeli to jest twój wybór a nie z góry narzucone wymaganie to Nie marnuj czasu na naukę BAT-a, jako język programowania BAT to proteza.

    Zainwestuj swój czas w porządny język programowania.

    Pod windows-em użyj powershell-a.
  • REKLAMA
  • #9 16305962
    bicik4096
    Poziom 4  
    Posty: 726
    Ocena: 7
    Kolego, ja już od dawna kodze ( w czym innym ), tyle że ten bat jest mi TERAZ potrzebny, aby nie używać powershella, C# czy innych. Mam "goły" Windows po NLITE, na takim okrojonym Windowsie, muszę zrobić coś w tym BAT-cie. Dlatego tutaj przyszedłem, czekając aż ktoś mądrzejszy, podpowie im, i wskutek podpowiedzi, rozwiążę swój problem. I nadal odpowiedzi nie ma, a wcześniej już podstawiłeś mi regulamin forum, że coś tam się nie stosuje. Wystarczy zerknąć w moją treść i widać że zrobiłem podstawę. Więc na koniec, zamiast poprzeć to co pisałeś, rozwiązaniem konkretnym, przerzucasz moją uwagę na coś innego. Moim zdaniem to nie jest fer.

    Znalazłem i jakoś dało się ( stackoverflow.com ):

    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    Także pisanie o żartach z mojej strony, jest nieodpowiednim zachowaniem. Jak widać przykład który znalazłem, rozwiązał mój problem i wcale nie jest prosty. Będąc w dziale Programowanie Początkujący, zachowałem się właściwie.
  • #10 16306939
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    bicik4096 napisał:
    Także pisanie o żartach z mojej strony, jest nieodpowiednim zachowaniem. Jak widać przykład który znalazłem, rozwiązał mój problem i wcale nie jest prosty. Będąc w dziale Programowanie Początkujący, zachowałem się właściwie.
    Przepraszam w takim razie...
    Pytanie było banalne. Rozwiązanie jednak, jak widać, nie.

Podsumowanie tematu

✨ Użytkownik poszukiwał pomocy w zakresie skryptu .bat do wyszukiwania pliku "MAC.txt" w systemie Windows. Początkowo skrypt używał polecenia `dir /s`, ale nie potrafił przypisać znalezionej ścieżki do zmiennej. Po kilku próbach i wskazówkach od innych uczestników, użytkownik znalazł rozwiązanie, które wykorzystuje pętlę `for /f` do przypisania wyniku wyszukiwania do zmiennej. Ostatecznie, użytkownik uzyskał działający skrypt, który wyświetla ścieżkę do pliku oraz obsługuje błędy.
Wygenerowane przez model językowy.
REKLAMA