Niektórzy muszą uważać na:
Po dwukrotnym kliknięciu plik wsadowy %0
zostanie otoczony cudzysłowami. Na przykład, jeśli zapiszesz ten plik jako c:\test.bat
:
@echo %0
@pause
Dwukrotne kliknięcie spowoduje otwarcie nowego wiersza polecenia z danymi wyjściowymi:
"C:\test.bat"
Ale jeśli najpierw otworzysz wiersz polecenia i wywołasz go bezpośrednio z tego wiersza polecenia, %0
odniesie się do dowolnego wpisanego tekstu . Jeśli wpiszesz test.bat
Enter, wynik nie %0
będzie zawierał cudzysłowów, ponieważ nie wpisałeś cudzysłowów:
c:\>test.bat
test.bat
Jeśli wpiszesz test
Enter, wyjście %0
również nie będzie miało rozszerzenia, ponieważ nie wpisałeś żadnego rozszerzenia:
c:\>test
test
To samo dla tEsT
Enter:
c:\>tEsT
tEsT
Jeśli wpiszesz "test"
Enter, wynik %0
będzie zawierał cudzysłowy (ponieważ je wpisałeś), ale bez rozszerzenia:
c:\>"test"
"test"
Wreszcie, jeśli wpiszesz "C:\test.bat"
, wynik będzie dokładnie tak, jakbyś go dwukrotnie kliknął:
c:\>"C:\test.bat"
"C:\test.bat"
Pamiętaj, że nie są to wszystkie możliwe wartości, %0
ponieważ możesz wywołać skrypt z innych folderów:
c:\some_folder>/../teST.bAt
/../teST.bAt
Wpłynie to również na wszystkie powyższe przykłady %~0
, ponieważ dane wyjściowe %~0
to po prostu dane wyjściowe %0
cudzysłowów (jeśli występują).
echo %~dp0
nie będzie działać w wierszu poleceń, tylko w pliku wsadowym. Hه!