Некоторые ошибки, на которые стоит обратить внимание:
Если вы дважды щелкните , пакетный файл %0
будет заключен в кавычки. Например, если вы сохраните этот файл как c:\test.bat
:
@echo %0
@pause
Двойной щелчок откроет новую командную строку с выводом:
"C:\test.bat"
Но если вы сначала откроете командную строку и вызовете ее непосредственно из этой командной строки, %0
будет ссылаться на все, что вы набрали . Если вы наберете test.bat
Введите , вывод %0
не будет содержать кавычек, потому что вы ввели без кавычек:
c:\>test.bat
test.bat
Если вы наберете test
Введите , вывод %0
также не будет иметь расширения, поскольку вы ввели без расширения:
c:\>test
test
То же самое для tEsT
Введите :
c:\>tEsT
tEsT
Если вы введете "test"
Введите , вывод %0
будет содержать кавычки (так как вы их набрали), но без расширения:
c:\>"test"
"test"
Наконец, если вы введете "C:\test.bat"
, результат будет точно таким, как если бы вы дважды щелкнули по нему:
c:\>"C:\test.bat"
"C:\test.bat"
Обратите внимание, что это не все возможные значения %0
может быть потому, что вы можете вызвать скрипт из других папок:
c:\some_folder>/../teST.bAt
/../teST.bAt
Все приведенные выше примеры также влияют на %~0
, потому что вывод %~0
- это просто вывод %0
минус кавычки (если есть).