Войти

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


nikis
29-06-2019, 06:42
Привет, будьте добры подскажите как можно сделать такое:
Есть список (list.txt) такого типа,

C:\Users\oleg\Desktop\папка\июль\1\test.exe
C:\Users\oleg\Desktop\папка\июль\22\test.exe

Как можно получить первую строку, перейти по этому пути, удалить эту строку, и запустить exe файл.
Файл test.exe всегда с одним названием.

Iska
29-06-2019, 07:56
nikis, зачем надо «переходить»?

«Удалить строку» точно не выйдет, нет такой возможности у пакетных файлов (только обходными путями). А оно надо — удалять?

nikis
29-06-2019, 10:35
nikis, зачем надо «переходить»? »
А как по другому запускать можно?

Желательно удалять, для того чтобы второй раз не запустился exe с этой папки.

Iska
29-06-2019, 14:07
А как по другому запускать можно? »
Как обычно — по полному пути.

Желательно удалять, для того чтобы второй раз не запустился exe с этой папки. »
А зачем ему запускаться второй раз?

Вам нужно было изложить проблему, а не выбранный метод решения.

А так — держите:
@echo off
setlocal enableextensions enabledelayedexpansion

set sListFile=list.txt

if exist "%sListFile%" (
for /f "usebackq delims=" %%i in ("%sListFile%") do (
if exist "%%~i" (
start "" /wait "%%~i"
) else (
echo File [%%~i] not found.
)
)
) else (
echo Can't find list file [%sListFile%].
exit /b 1
)

endlocal
exit /b 0

megaloman
29-06-2019, 19:55
можно получить первую строку, перейти по этому пути, удалить эту строку, и запустить exe файл. »Буквально следую Вашим пожеланиям@Echo Off
Set "List=Z:\Box_In\list.txt"

:Begin
FOR %%f IN ("%List%") DO If %%~zf==0 Exit /B
FOR /F "usebackq delims=" %%i IN ("%List%") DO (
Set "Exe=%%i"
Pushd "%%~dpi"
>"%List%.tmp" More +1 "%List%"
>nul Move /Y "%List%.tmp" "%List%"
GoTo :Cont
)
:Cont
%Exe%
Popd
pause
rem GoTo :Begin
Exit /BЕсли надо чтобы батник запускал программы сам пока есть строки в list.txt, уберите rem
Если в путях файлов возможны пробелы и нет ключей, необходимо вместо %Exe% написать "%Exe%", либо в файле list.txt путь указывать в кавычках.




© OSzone.net 2001-2012