- PATH – отобразить или изменить пути поиска исполняемых файлов.
- Path windows bat file
- Синтаксис
- Параметры
- Примечания
- Примеры
- Windows CMD: Переменная PATH — Добавить PATH — Echo PATH
- Вывод Переменной Windows PATH
- Добавить Путь к Windows PATH
- Задать Windows PATH для Текущей Сессии
- Задать Windows PATH на Постоянной Основе
- How to test if a path is a file or directory in Windows batch file?
- 6 Answers 6
- How to get the path of the batch script in Windows?
- 8 Answers 8
PATH – отобразить или изменить пути поиска исполняемых файлов.
Команда PATH используется для указания или просмотра путей поиска исполняемых файлов. Пути поиска представляют собой строки, определяющие перечень каталогов файловой системы, в которых находятся исполняемые файлы (файлы с расширением .bat, .cmd, .exe, .vbs и т.п. ), разделенные точкой с запятой ; Например, C:\windows;C:\windows\system32 — определяет пути поиска C:\windows и C:\windows\system32 . Если вы в командной строке набираете program.exe без явного указания пути, то для запуска файла program.exe выполняется его поиск в текущем каталоге, и если он не найден, то в каталоге C:\windows , если и там не найден – в каталоге C:\windows\system32 . Если же исполняемый файл будет в обоих каталогах, то выполнится запуск из того, что определен ранее — C:\windows . Значение переменной среды PATH содержит пути поиска исполняемых файлов определенный на данный момент времени.
Формат командной строки:
PATH ; — очистить путь поиска используемых файлов, ограничив его текущим каталогом.
PATH [[диск:]путь[;. ][;] — установит ь пути поиска исполняемых файлов.
Команда PATH без параметров отображает текущий путь поиска. В командную строку допускается включение переменной %PATH% , задающей прежний путь поиска.
path /? — отобразить подсказку по использованию команды.
path — отобразить пути поиска исполняемых файлов.
path %PATH%;C:\Scripts — добавить путь C:\Scripts в конец существующего списка каталогов для поиска исполняемых файлов.
path C:\scripts;%PATH% — добавить путь C:\Scripts в начало существующего списка каталогов для поиска исполняемых файлов.
При выполнении команды PATH, значение передаваемых ей параметров не анализируется и воспринимается как обычная строка символов, поэтому, например, трижды выполнив команду path C:\scripts;%PATH% вы создадите 3 записи для пути C:\Scripts . Значение переменной PATH, измененное командой действует только на момент текущего сеанса командной строки. Для постоянного изменения системных и пользовательских переменных среды, в том числе, и путей поиска, используется команда SetX . В постоянно действующих путях поиска не стоит указывать каталоги сменных носителей (дискет, CD/DVD, карты памяти и т.п.)
Path windows bat file
Устанавливает путь поиска в переменной среды PATH, которая является набором каталогов, используемых для поиска исполняемых файлов. Вызванная без параметров, команда path выводит текущий путь поиска.
Синтаксис
Параметры
Примечания
Если ; используется в качестве самостоятельного параметра, то происходит удаление существующего пути поиска, найденного в переменной PATH.
Если параметр %path% включен в синтаксис, то командный интерпретатор Cmd.exe заменяет его на значение пути поиска, найденное в переменной PATH, устраняя тем самым необходимость ручного ввода этих значений в командной строке. Сведения о замене значений переменных среды смотрите в разделе «Командная оболочка: обзор».
Операционная система всегда начинает поиск с текущего каталога, а затем продолжает его в каталогах, заданных в пути поиска.
Файлы с одинаковыми именами и разными расширениями
В некоторых случаях в одном каталоге могут содержаться файлы с одинаковыми именами, но с разными расширениями. Например, файл Accnt.com, запускающий бухгалтерскую программу, и файл Accnt.bat, выполняющий подключение к бухгалтерской сети.
Поиск файлов происходит с учетом их расширений в следующем порядке:.exe, .com, .bat и .cmd. Чтобы запустить файл Accnt.bat (при наличии в том же каталоге файла Accnt.com), необходимо в командной строке указать его расширение (.bat).
Два или более одинаковых имен файлов в пути поиска
Если в пути поиска указаны два или более файлов с одинаковыми именами и расширением, то Windows XP сначала осуществляет поиск указанного имени в текущем каталоге, а затем уже в каталогах пути поиска в том же порядке, в котором они перечислены в PATH.
Поиск подсистемы MS-DOS
Если команда path включена в файл Autoexec.nt, то при каждом входе в систему она будет автоматически добавлять заданный путь поиска подсистемы MS-DOS к пути поиска Windows XP. Интерпретатор команд Cmd.exe не использует файл Autoexec.nt. При запуске из ярлыка Cmd.exe наследует набор переменных среды из My Computer/Properties/Advanced/Environment.
Примеры
Приведенная ниже команда задает использование Windows XP для поиска трех каталогов для нахождения внешних команд. Пути для этих трех каталогов следующие: C:\User\Taxes, B:\User\Invest и B:\Bin:
Windows CMD: Переменная PATH — Добавить PATH — Echo PATH
PATH — переменная окружения, в которой перечисляется набор директорий, разделенных точкой с запятой ( ; ), в которых расположены исполняемые программы.
В этой заметке я показываю, как вывести содержимое переменной окружения PATH с помощью командной строки в Windows.
Я также показываю, как добавить путь к переменной PATH на постоянной основе или только для текущей сессии.
Дельный Совет: Отображение списка переменных в Windows! Read More →
Вывод Переменной Windows PATH
Вывести содержимое переменной PATH из Windows cmd :
Приведенные выше команды возвращают все пути, которые хранятся в переменной окружения Windows PATH одной строкой, разделенной точкой с запятой ( ; ), что не очень удобочитаемо.
Чтобы вывести каждую запись переменной Windows PATH с новой строки, выполните следующее:
Дельный Совет: Создание переменных окружения в Windows! Читать далее →
Добавить Путь к Windows PATH
Внимание! Это решение может быть деструктивным, так как Windows обрезает PATH до 1024 символов. Перед любыми изменениями обязательно сделайте резервную копию PATH .
Сохраните содержимое переменной окружения Windows PATH в файл C:\path-backup.txt :
Задать Windows PATH для Текущей Сессии
Задать переменную Windows PATH для текущей сессии:
Задать Windows PATH на Постоянной Основе
Запуск от Имени Администратора: Команда setx доступна только начиная с Windows 7 и требует командной строки с повышенными правами.
Добавить каталог к пользовательской переменной PATH на постоянной основе:
Добавить каталог к системной переменной PATH на постоянной основе (для всех пользователей):
Info: Чтобы увидеть изменения после выполнения команда setx — откройте новую командную строку.
How to test if a path is a file or directory in Windows batch file?
I searched here, found someone using this
but didn’t work, when %1==c:\this is a file with spaces.csproj , the test still success, which means it will still be treated as a folder.
anyone knows the answer, i guess this is a very common problem and Windows has existed for many many years, it should have a very simple solution.
6 Answers 6
I know the if exist path\nul test for a folder used to work on MS-DOS. I don’t know if it was broken with the introduction of long file names.
I knew that if exist «long path\nul» does not work on Windows batch. I did not realize until today that if exist path\nul works on Vista and beyond as long as path is in the short 8.3 form.
The original code appears to work on Vista. It seems like it should work on XP as well, but I believe the following XP bug is getting in the way: Batch parameter %
The original code does not need the FOR loop, it could simply use %
Here is a variation that fully classifies a path as INVALID, FILE or FOLDER. It works on Vista, but does NOT work on XP because of the %
s1 bug. I’m not sure how it performs on MS-DOS.
EDIT 2015-12-08: There are a number of Windows situations where this fails
I believe this variation will work with nearly all versions of Microsoft batch, including MS-DOS and XP. (it obviously won’t work on early versions of DOS that don’t support PUSHD)
UPDATE 2014-12-26
I’m pretty sure the following will work on all versions of Windows from XP onward, but I have only tested on Win 7.
Edit 2015-12-08: This can fail on network drives because the folder test can falsely report a file as a folder
UPDATE 2015-12-08
Finally — a test that truly should work on any Windows version from XP onward, including with network drives and UNC paths
Note — This technique is intended to be used for a path without any wildcards (a single specific file or folder). If the provided path includes one or more wildcards, then it provides the result for the first file or folder that the file system encounters. Identical directory structures may give different sort order results depending on the underlying file system (FAT32, NTFS, etc.)
How to get the path of the batch script in Windows?
I know that %0 contains the full path of the batch script, e.g. c:\path\to\my\file\abc.bat
I would path to be equal to c:\path\to\my\file
How could I achieve that ?
dpf0″ would be more reliable for this case. – eckes Jan 14 ’17 at 17:59
8 Answers 8
To remove the final backslash, you can use the :n,m substring syntax, like so:
I don’t believe there’s a way to combine the %0 syntax with the :
n,m syntax, unfortunately.
0\.. — knew there had to be a better way! Also, you will probably want to enclose %
dp0 in double quotation marks ( «» ) in case there’s spaces in the directory name, etc. – Cameron Sep 30 ’10 at 3:56
dp0 contains the « at the end. Do you have an idea how to remove it ? – Misha Moroshko Sep 30 ’10 at 3:56
0,-1$ in it. Still—very nice answer. – Kyle Strand Sep 21 ’16 at 5:04
dp0 may be a relative path. To convert it to a full path, try something like this:
dp0 directly? – jpaugh Mar 28 ’16 at 19:04
dp0 can be relative, which may or may not be a problem depending on use case – Michael Mrozek Feb 6 ’17 at 19:52
dp0 can’t contain a relative path, d stands for drive and p for path, how a drive could be relative? – jeb Mar 31 ’17 at 15:30
dp0 will be an absolute path even when the script was run as a relative path. Thanks to jeb’s comment, I was not fooled by this answer. Why do people just make up stuff and go and start spreading their wild imagination to others. I have this colleague who does this, but I blamed his (young) age. I wish my down-vote would count. – bitoolean May 25 ’18 at 14:25