Chciałbym móc sprawdzić, czy istnieje określony folder (FolderA), a jeśli tak, to czy komunikat ma zostać wyświetlony, a następnie plik wsadowy ma zostać zamknięty.
Jeśli FolderA nie istnieje, chciałbym następnie sprawdzić, czy istnieje inny folder (FolderB). Jeśli FolderB nie istnieje, powinna zostać wyświetlona wiadomość i folder powinien zostać utworzony, a jeśli FolderB istnieje, powinna zostać wyświetlona wiadomość o tym.
Czy ktoś ma pomysł na kod, którego mógłbym po prostu użyć w notatniku, aby utworzyć plik wsadowy, który pozwoli mi to zrobić?
Wszystko to należy zrobić w jednym .bat
pliku.
windows
batch-file
user3179825
źródło
źródło
Odpowiedzi:
Spróbuj użyć tego:
Wymienić yourfilename z nazwą pliku.
Aby uzyskać katalog, spójrz na ten https://jeffpar.github.io/kbarchive/kb/065/Q65994/
końcowy ukośnik odwrotny („\”) wydaje się być wystarczający do odróżnienia katalogów od zwykłych plików.
źródło
if exist "c:\folder\nul" echo ok
nie działa dla mnie pod Windows 7. Co zadziałałoif exist "c:\folder\" echo ok
.if exist "networkPath\nul"
może fałszywie zgłosić plik jako folder na dyskach sieciowych Windows. Niestetyif exist "networkPath\"
cierpi na ten sam problem. Zobacz aktualizację 2015-12-08 na stackoverflow.com/a/8669636/1012053, aby poznać technikę, która była niezawodna we wszystkich moich testach.if exist c:\Windows\nul echo ok
mówiok
, aleif exist "c:\Windows\nul" echo ok
nic nie mówi. Jak już powiedziałem, podczas gdyif exist "c:\Program Files\nul" echo ok
nic nie mówi,if exist "c:\Program Files\" echo ok
mówi,ok
a zatem działa nawet dla ścieżki ze spacjami.Myślę, że odpowiedź jest tutaj (prawdopodobnie duplikat):
Jak sprawdzić, czy plik jest katalogiem w skrypcie wsadowym?
Zastąp% VAR% swoim katalogiem. Przeczytaj oryginalną odpowiedź, ponieważ zawiera szczegółowe informacje na temat obsługi spacji w nazwie folderu.
Jak powiedział foxidrive, może to nie być niezawodne w oknach klasy NT. U mnie działa, ale wiem, że ma pewne ograniczenia (które można znaleźć w przywoływanym pytaniu)
powinno wystarczyć dla nowoczesnych okien.
źródło
if exist "c\:folder\" echo folder exists
E:\NUL