Войти

Показать полную графическую версию : [решено] Как подставить в путь переменную?


Cargo
26-03-2015, 20:14
Здравствуйте.
Помогите дописать батник. Я ещё совсем "зелёный", пока не получается.

@Echo Off
SetLocal enabledelayedexpansion
for /f "usebackq tokens=2 delims==" %%i in (`type "%APPDATA%\Mozilla\Firefox\profiles.ini"^|find "Path="`)
::получили этот "Path"

::далее нужно разархивировать архив в назначенный путь
"x:\Program Files\WinRAR\WinRAR.exe" x E:\1\TEST.rar x:\полученный путь из "Path"
endlocal
exit /b

Foreigner
26-03-2015, 20:39
Cargo, Если в profiles.ini прописан только один профиль. Или в переменную попадет последний.

@echo off
setlocal

for /f %%i in ('type "%APPDATA%\Mozilla\Firefox\profiles.ini"') do 1>nul 2>&1 set "m_%%i"
"x:\Program Files\WinRAR\WinRAR.exe" x "E:\1\TEST.rar" "%APPDATA%\Mozilla\Firefox\%m_path:/=\%"

Iska
26-03-2015, 20:43
Как-то так:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==" %%i in (
`type "%APPDATA%\Mozilla\Firefox\profiles.ini" ^| find.exe /i "Path="`
) do set sPath=%%~i

echo [%sPath%]

if defined sPath "x:\Program Files\WinRAR\WinRAR.exe" x "E:\1\TEST.rar" "x:\%sPath%"

endlocal
exit /b 0

Но имейте в виду: в «%APPDATA%\Mozilla\Firefox\profiles.ini» может быть куча «Path=» — по одному на каждый профиль.

Update: ага, коллега Foreigner уже озвучил ;).

Cargo
27-03-2015, 14:18
О! спасибки! оба работают.
Единственное, например, если конечный путь не создан, то вылетает ошибка в rar - "нет файлов для извлечения".

В целом вопрос решён, тему можно закрыть
Спасибо.

Iska
27-03-2015, 15:06
Единственное, например, если конечный путь не создан, »
Если путь не существует — как он тогда мог оказаться в указании пути к профилю Firefox?!

Cargo
28-03-2015, 06:25
Да я немного напутал. Когда я тестил, папки (x:\%sPath% )куда должен был распокаваться архив небыло, и на это RAR ругался.
Просто дописал проверку на наличие конечного пути




© OSzone.net 2001-2012