Niektórzy muszą uważać na:
Po dwukrotnym kliknięciu plik wsadowy %0zostanie 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, %0odniesie się do dowolnego wpisanego tekstu . Jeśli wpiszesz test.batEnter, wynik nie %0będzie zawierał cudzysłowów, ponieważ nie wpisałeś cudzysłowów:
c:\>test.bat
test.bat
Jeśli wpiszesz testEnter, wyjście %0również nie będzie miało rozszerzenia, ponieważ nie wpisałeś żadnego rozszerzenia:
c:\>test
test
To samo dla tEsTEnter:
c:\>tEsT
tEsT
Jeśli wpiszesz "test"Enter, wynik %0bę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, %0ponieważ 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 %~0to po prostu dane wyjściowe %0 cudzysłowów (jeśli występują).
echo %~dp0nie będzie działać w wierszu poleceń, tylko w pliku wsadowym. Hه!