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

[Rozwiązano] cmd - Jak przejść do katalogu z folderem o zmiennej nazwie?

Marcin_00 02 Lut 2019 12:08 2973 7
REKLAMA
  • #1 17749080
    Marcin_00
    Poziom 13  
    Posty: 88
    Pomógł: 7
    Ocena: 6
    Hej
    Potrzebuję małej pomocy odnośnie command line
    Muszę przejść do katalogu gdzie po drodze jest folder w którym co jakiś czas zmienia się nazwa.
    Nie wiem w jaki sposób pobrać poprawną ścieżkę aby wpisać ją do batcha który będzie wykonywał automatycznie skrypt.
    np. D:\folder1\folder2\folder3\"zmienna nazwa folderu"\folder5\plik.exe

    jakiś pomysł?
  • REKLAMA
  • #2 17750613
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • Pomocny post
    #3 17750703
    dt1
    Admin grupy komputery
    Posty: 48271
    Pomógł: 7319
    Ocena: 8301
    Można, do tego skrypt nie musi odgadywać, bo sobie poszuka pliku, który ma się uruchomić. Dobrze tylko, aby w przeszukiwanej ścieżce był tylko jeden plik exe o takiej nazwie, inaczej uruchomi każdą instancję, którą znajdzie :)

    Komenda mogłaby wyglądać jakoś tak:
    for /F "delims=" %G in ('dir /b /s "test.txt"') do @ "%~G"


    Stworzyłem testowo ścieżkę d:\1\2\3\4, wrzuciłem tam plik test.txt i z podkatalogu 1 (aby ograniczyć czas przeszukiwania) uruchomiłem to polecenie - plik test.txt został znaleziony i uruchomiony w domyślnym edytorze. Oczywiście może to być również plik exe.

    Powyższe zadziała z linii komend, ale w pliku bat trzeba podwoić procenty, czyli:
    for /F "delims=" %%G in ('dir /b /s "test.txt"') do @ "%%~G"


    Dodano po 14 [minuty]:

    Dorzucam przykładowy test - w załączniku. Plik Hello.exe to prosty program w C, który wypisze ścieżkę, spod której został odpalony. Jego kod wygląda dokładnie tak:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    Załączniki:
    • test.zip (10.44 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 17751010
    Marcin_00
    Poziom 13  
    Posty: 88
    Pomógł: 7
    Ocena: 6
    @dt1 dzięki wielkie za odpowiedź tylko hmmm wiersz nie przechodzi do tej odnalezionej ścieżki a zostaje ciągle w początkowej d:\
    Tak naprawdę to już połowa sukcesu bo komenda dir /s /b /p f4 pokazuje właśnie to czego potrzebuję teraz tylko chcę tam przejść automatycznie "D:\f0\f1\f2\f3\f4" bez otwierania jakiegokolwiek pliku ponieważ kolejne skrypty będą odpytywać pliki znajdujące się w "f4". A nie ma możliwości np. wklejenia schowka bo tą odpowiedź można zakończyć poleceniem "clip"? lub inny pomysł może by to zapisać do pliku %temp%aaa.txt i potem pobrać ścieżkę tylko kurde nie mogę trafić komendy ehhhh
    cmd - Jak przejść do katalogu z folderem o zmiennej nazwie? cmd - Jak przejść do katalogu z folderem o zmiennej nazwie?
  • REKLAMA
  • Pomocny post
    #5 17751202
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    dodaj
    Kod: Dos
    Zaloguj się, aby zobaczyć kod
  • #6 17751403
    Marcin_00
    Poziom 13  
    Posty: 88
    Pomógł: 7
    Ocena: 6
    @clubs niestety dalej nie działa jak powinno, chyba że coś źle robię. Pokazuje ścieżkę jednak nie przechodzi do niej a wraca do wejściowej.
    Wygląda to tak na dysku "D" umieściłem tą strukturę folderów f0\f1\f2\f3\f4\ a plik test.txt w f4. Uruchamiam bat i jest taki rezultat.
    cmd - Jak przejść do katalogu z folderem o zmiennej nazwie?
  • Pomocny post
    #7 17751663
    dt1
    Admin grupy komputery
    Posty: 48271
    Pomógł: 7319
    Ocena: 8301
    Ja bym to zrobił tak:

    Kod: Dos
    Zaloguj się, aby zobaczyć kod


    Do tego, jeśli w którymś momencie skryptu będziesz chciał wrócić do katalogu, w którym byłeś wcześniej, możesz użyć komendy popd.

    Kolega wyżej zrobił praktycznie to samo, z tym że jego skrypt zachował i wyświetlił w następnej linii ścieżkę - zamiast echo %s% musiałbyś użyć cd %s% albo pushd %s%, żeby faktycznie przejść do znalezionego katalogu..
    Załączniki:
    • f0.zip (10.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 17751817
    Marcin_00
    Poziom 13  
    Posty: 88
    Pomógł: 7
    Ocena: 6
    Wielkie dzięki @dt1 działa tak jak tego potrzebowałem.
    Pozdrawiam

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik potrzebował pomocy w przechodzeniu do katalogu, w którym znajduje się folder o zmiennej nazwie, w kontekście skryptu batch. Odpowiedzi sugerowały użycie komendy `for /F` do przeszukiwania folderów i uruchamiania plików. Kluczowe rozwiązania obejmowały użycie `pushd` do przejścia do znalezionej ścieżki oraz `popd` do powrotu do poprzedniego katalogu. Użytkownik ostatecznie uzyskał działające rozwiązanie, które spełniało jego wymagania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA