Поточний каталог - змінну в CMD-скриптах, Хмарний фронт

Поточний каталог - змінну в CMD-скриптах

Ось знадобився мені днями сабж. Рішення виявилося не зовсім очевидним. Ось приклад, може, кому ще знадобиться.

FOR /F "usebackq tokens=*" %%i IN (`cd`) DO set CurrentDir=%%i ECHO %CurrentDir%

Зверніть увагу на зворотні лапки. У цьому прикладі в першому рядку виведення команди cd (довгий шлях, можливо, що містить прогалини, без лапок) записується в змінну %CurrentDir%, яка потім використовується в другому рядку скрипта.

UPDATE: Все набагато простіше. Є стандартна змінна %CD%

Сподобалося це:

Ця інформація була затверджена на Лютий 15, 2010 на 23:04 і проходить під Сисадміну, Windows. Ви можете відповісти на будь-який відгук до цього пункту через RSS 2.0 feed. Ви можете скинути до кінця і залишити відповідь. Pinging is currently not allowed.

тільки ось %cd% виводить шлях лише до першого пропуску. і лапки не допомагають 😦

Щойно перевірив у 64-бітній Сімерці. Ось такий cmd-шник:

C:\Users\Phil>cd "c:\Temp\Папка\з довгим ім'ям\з пробілами"

c:\Temp\Папка\з довгим\ім'ям\з пробілами>Test.cmd

c:\Temp\Папка\з довгим\ім'ям\з пробілами>set test=c:\Temp\Папка\з довгим\імен єм\з пробілами

c:\Temp\Папка\з довгим\ім'ям\з пробілами>pause Для продовження натисніть будь-яку клавішу . . .

c:\Temp\Папка\з довгим\ім'ям\з пробілами>echo c:\Temp\Папка\з довгим\ім'ям\з пробілами c:\Temp\Папка\з довгим\ім'ям\з пробілами

c:\Temp\Тека\з довгим\ім'ям\з пробілами>

set test = % cd % pause echo "% test %"

мені більше підійшов такий метод: set TOOLS_PATH=%

dp0 (шлях до папки де лежить батник без слєша) set TOOLS_PATH=%TOOLS_PATH:

0,-1% (теж саме, тільки без слеша в кінці)