Как получить только имя папки, в которой находится файл с расширением .bat?

Как можно вывести только имя папки, в которой находится bat-файл, при его запуске, чтобы получить переменную с именем папки без указания полных путей и дополнительных данных?
  • 7 марта 2025 г. 14:34
Ответы на вопрос 2
Чтобы получить только имя папки, в которой находится файл с расширением `.bat`, вы можете использовать встроенные переменные в BAT-файле. Вот пример кода, который сделает это:

```bat
@echo off
set "folderName=%~dp0"
set "folderName=%folderName:~0,-1%"
for %%F in ("%folderName%..") do set "folderName=%%~nxF"
echo %folderName%
```

### Объяснение кода:
1. `@echo off` - отключает вывод команд непосредственно в окне консоли.
2. `set "folderName=%~dp0"` - получает полный путь к директории, в которой находится скрипт. `%~dp0` возвращает путь с завершающим слэшем.
3. `set "folderName=%folderName:~0,-1%"` - убирает последний слэш из пути.
4. `for %%F in ("%folderName%..") do set "folderName=%%~nxF"` - получает только имя папки, убирая полный путь, используя специальный синтаксис.
5. `echo %folderName%` - выводит имя папки.

Запустив этот BAT-файл, вы получите только имя папки, в которой он находится, без дополнительной информации о пути.
:Отключение вывода команд на экран на протяжении выполнения всего пакетного файла
@ECHO OFF

:Выбран цвет текста - Светло-желтый ; цвет фона - Зеленый
Color 2e

:Размер окна .bat файла при активном режиме (Ширина, Высота)
Mode 50, 8

:Изменение кодовой страницы в соответствующей кодировке
chcp 65001 >nul

:---------------------ТЕЛО ПРОГРАММЫ-----------------------------------
Set NAMEP=%~dp0
For /D %%a In ("%NAMEP:~0,-1%.txt") Do Set NAMEP=%%~na
:---------------------ТЕЛО ПРОГРАММЫ-----------------------------------

:Вывод сообщения 
Echo %NAMEP%

:Используем переменную %NAMEP% для вашего кода

:Пауза
pause
Похожие вопросы