Имена каталогов в пакетном режиме - PullRequest
0 голосов
/ 01 мая 2009

Как мне сохранить имя каталога в переменной внутри пакетного файла ??

Ответы [ 5 ]

2 голосов
/ 01 мая 2009
set dirname=c:/some/folder

echo %dirname%

REM retrieve the last letter of the folder 
REM and save it in another variable

set lastLetter=%dirname:~-1%

echo %lastLetter%
0 голосов
/ 03 ноября 2011

Чтобы позволить сценарию определить имя каталога своей родительской папки:

@echo off
::setlocal enableextensions,enabledelayedexpansion
SET CDIR=%~p0
SET CDIR=%CDIR:\= %
FOR %%a IN (%CDIR%) DO (
  SET CNAME=%%a
)
echo %CDIR%
echo %CNAME%
pause

Или, еще лучше:

@echo off
::setlocal enableextensions,enabledelayedexpansion
SET CDIR=%~p0
SET CDIR=%CDIR:~1,-1%
SET CDIR=%CDIR:\=,%
SET CDIR=%CDIR: =_%
FOR %%a IN (%CDIR%) DO SET "CNAME=%%a"
echo %CDIR%
SET CNAME=%CNAME:_= %
echo %CNAME%
pause
0 голосов
/ 01 мая 2009

Используйте команду set .

Пример:

rem Assign the folder "C:\Folder1\Folder2" to the variable "MySavedFolder"
set MySavedFolder=C:\Folder1\Folder2

rem Run the program "MyProgram.exe" that is located in Folder2
 %MySavedFolder%\MyProgram.exe
rem Run the program "My Second Program.exe" that is located in Folder 2 (note spaces in filename)
"%MySavedFolder%\My Second Program.exe"
rem Quotes are required to stop the spaces from being command-line delimiters, but the command interpreter (cmd.exe) will still substitute the value of the variable.

Чтобы удалить переменную, ничего не присваивайте имени:

set MySavedFolder=

Поскольку вы находитесь внутри пакетного файла, я предлагаю окружить использование вашей переменной setlocal и endlocal в конце файла; это делает переменные вашей среды локальными для пакетного файла и не загрязняет пространство имен глобальной среды.

0 голосов
/ 01 мая 2009

Без большей точности вам трудно помочь ...

Может быть, вы хотите текущий каталог?

set name=%CD%
echo %name%
0 голосов
/ 01 мая 2009

Чтобы вернуть каталог, в котором хранится командный файл, используйте % ~ Dp0

% 0 - полный путь к пакетному файлу,

set src= %~dp0
echo %src%

Я использовал этот файл, когда ожидаю определенных файлов относительно моего командного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...