Войти

Показать полную графическую версию : найти файл и записать в переменную


pzh2393
19-01-2013, 00:42
Подскажите, пожалуйста" как сделать поиск файла на диске с которого запущен "БАТник", а затем записать путь к нему и его имя с расширением в качестве переменной, чтобы была возможность дальше использовать в коде?

Iska
19-01-2013, 03:55
Например, так:
@echo off
setlocal enableextensions enabledelayedexpansion

for /r "%~d0\" %%i in (SomeFile.Ext) do (if exist "%%~fi" set sPath=%%~fi& goto :Break)

:Break
if defined sPath echo [%sPath%]

endlocal
exit /b 0

pzh2393
19-01-2013, 18:52
Спасибо!
а можно ещё чтобы этот путь передавало в другой бантик, вызываемый из этого?

zion87
19-01-2013, 20:15
вызываемый из этого? »

вас интересует команда call "Вызов одного пакетного файла из другого"

call :next %sPath%

или же start "Запуск указанной программы или команды в отдельном окне"

start "" другой.bat %sPath%

получаем параметр в другой.bat

@echo off
echo %1
pause

Iska
19-01-2013, 23:24
а можно ещё чтобы этот путь передавало в другой бантик, вызываемый из этого? »
@echo off
setlocal enableextensions enabledelayedexpansion

for /r "%~d0\" %%i in (SomeFile.Ext) do (if exist "%%~fi" set sPath=%%~fi& goto :Break)

:Break
if defined sPath call "SomeBatch.cmd" "%sPath%"

endlocal
exit /b 0

pzh2393
20-01-2013, 00:06
Спасибо всем!
хотелось чтобы если переменная "%sPath%" определена её можно было использовать в другом батнике...

pzh2393
20-01-2013, 02:00
а "финт" с передачей пройдет если оба батника были скомпилированы в exe?

Iska
20-01-2013, 03:35
pzh2393, проверьте. Я подобное не пользовал, и не планирую.




© OSzone.net 2001-2012