Potrzebuję pobrać nazwę folderu aktualnie wykonywanego pliku wsadowego. I starali się pętla nad bieżącym katalogu, używając następującej składni (co jest nie tak w chwili obecnej):Windows wsadowy - pętla nad folderem i sparsuj ostatnią nazwę folderu
set mydir = %~p0
for /F "delims=\" %i IN (%mydir%) DO @echo %i
kilka problemów na które ja nie potrafię przekazać „mydir” wartość zmiennej jako ciąg wyszukiwania . Wydaje się, że działa tylko wtedy, gdy przekazuję polecenia; Mam błędną składnię i nie mogę zrozumieć dlaczego.
Moje myśli polegały na pętli nad ciągiem folderów z ogranicznikiem "\", ale powoduje to również problemy. Jeśli ustawię zmienną w każdej pętli, ostatnią ustawioną wartością będzie nazwa bieżącego folderu. Na przykład, biorąc pod uwagę następującą ścieżkę:
C: \ Folder1 \ Folder2 \ folder3 \ Archive.bat
spodziewałbym się przeanalizować wartość 'folder3'.
Muszę przeanalizować tę wartość, ponieważ jej nazwa będzie częścią innego folderu, który zamierzam utworzyć w dalszej części pliku wsadowego.
Wielkie dzięki, jeśli ktoś może pomóc. Mogę szczekać na niewłaściwym drzewie, więc wszelkie inne podejścia również zostaną bardzo dobrze przyjęte.
Lubi '|' dobrze jako separator, musisz po prostu wstawić% mydir% w cudzysłowie, jak w '%% i IN ("% mydir% ")' – ErikE