CMD/BAT - Переменная в батнике, зависимая от имени файла
-
russur
CMD/BAT - Переменная в батнике, зависимая от имени файла
Доброго дня!
Прошу очень помочь с батником.
Его задача обработать архивный файл. Он его сам распаковывает и раскидывает содержимое по папкам, но дело в том, что перед началом работы батника, в нём нужно прописать название этого архива.
Условие: изначально архивный файл лежит в папке, куда он предварительно скачивается с фтп.
Он единственный архив в той папке, поэтому условие можно как от привязать к самой папке, типа: "взять имея с любого архива arj в той папке"
Вот строка:
"D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
нужно как то сделать, чтобы 1800 стала переменной, название бралось от самого файла, который лежит по пути C:\work\1800.arj
Прошу очень помочь с батником.
Его задача обработать архивный файл. Он его сам распаковывает и раскидывает содержимое по папкам, но дело в том, что перед началом работы батника, в нём нужно прописать название этого архива.
Условие: изначально архивный файл лежит в папке, куда он предварительно скачивается с фтп.
Он единственный архив в той папке, поэтому условие можно как от привязать к самой папке, типа: "взять имея с любого архива arj в той папке"
Вот строка:
"D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
нужно как то сделать, чтобы 1800 стала переменной, название бралось от самого файла, который лежит по пути C:\work\1800.arj
-
Iska
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
Получить в переменную окружения «sArcName» имя первого «*.arj» файла из текущего каталога:
Код:
Получить в переменную окружения «sArcName» путь к первому «*.arj» файлу из указанного каталога:
Код:
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims==" %%i in ('dir /b /a:-d /o:n "*.arj"') do if not defined sArcName set sArcName=%%i
if defined sArcName echo %sArcName%
endlocal
exit /b 0Получить в переменную окружения «sArcName» путь к первому «*.arj» файлу из указанного каталога:
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
set sFolder=E:\Песочница\0144
for /f "delims==" %%i in ('dir /b /a:-d /o:n "%sFolder%\*.arj"') do if not defined sArcName set sArcName=%sFolder%\%%i
if defined sArcName echo %sArcName%
endlocal
exit /b 0-
russur
-
russur
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
russur, нет.
Цитата russur:
Условие: изначально архивный файл лежит в папке…
Какой путь к этой папке?
Цитата russur:
Вот строка:
"D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Цитата russur:
нужно как то сделать, чтобы 1800 стала переменной, название бралось от самого файла, который лежит по пути C:\work\1800.arj
Я не могу никак логически связать поиск файла «*.arj» в папке «C:\work» и попытку использования имени найденного файла в папке «D:\bik». Поясните этот вопрос.
Цитата russur:
Условие: изначально архивный файл лежит в папке…
CMD/BAT - Переменная в батнике, зависимая от имени файла
Какой путь к этой папке?
Цитата russur:
Вот строка:
"D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
CMD/BAT - Переменная в батнике, зависимая от имени файла
Цитата russur:
нужно как то сделать, чтобы 1800 стала переменной, название бралось от самого файла, который лежит по пути C:\work\1800.arj
CMD/BAT - Переменная в батнике, зависимая от имени файла
Я не могу никак логически связать поиск файла «*.arj» в папке «C:\work» и попытку использования имени найденного файла в папке «D:\bik». Поясните этот вопрос.
-
Iska
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
Есть папка: D:\bik
В ней находится файл: 1800.arj
Есть батник: test.bat
Задача батника распаковать этот файл.
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Эта команда распаковывает файл 1800.arj из папки D:\bik
Вот файл 1800.arj постоянно разный, он может называться и 1801.arj
так вот чтобы в батнике постоянно не менять 1800.arj на 1801.arj например, надо чтобы батника автоматом подставлял туда значение к себе, в зависимости от того, какой файл лежит в папке D:\bik
В ней находится файл: 1800.arj
Есть батник: test.bat
Задача батника распаковать этот файл.
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Эта команда распаковывает файл 1800.arj из папки D:\bik
Вот файл 1800.arj постоянно разный, он может называться и 1801.arj
так вот чтобы в батнике постоянно не менять 1800.arj на 1801.arj например, надо чтобы батника автоматом подставлял туда значение к себе, в зависимости от того, какой файл лежит в папке D:\bik
-
russur
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
Есть папка: D:\bik
В ней находится файл: 1800.arj
Есть батник: test.bat
Задача батника распаковать этот файл.
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Эта команда распаковывает файл 1800.arj из папки D:\bik
Вот файл 1800.arj постоянно разный, он может называться и 1801.arj
так вот чтобы в батнике постоянно не менять 1800.arj на 1801.arj например, надо чтобы батника автоматом подставлял туда значение к себе, в зависимости от того, какой файл лежит в папке D:\bik
В ней находится файл: 1800.arj
Есть батник: test.bat
Задача батника распаковать этот файл.
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Эта команда распаковывает файл 1800.arj из папки D:\bik
Вот файл 1800.arj постоянно разный, он может называться и 1801.arj
так вот чтобы в батнике постоянно не менять 1800.arj на 1801.arj например, надо чтобы батника автоматом подставлял туда значение к себе, в зависимости от того, какой файл лежит в папке D:\bik
-
Iska
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
Примерно так:
Код:
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
set sFolder=d:\bik
if exist "%sFolder%\." (
for /f "delims==" %%i in ('dir /b /a:-d /o:n "%sFolder%\*.arj"') do if not defined sArcName set sArcName=%sFolder%\%%i
if defined sArcName (
echo Found archive [!sArcName!]
echo "%sFolder%\arj.exe" x "!sArcName!" "%sFolder%\" -r
) else (
echo Not found any *.arj files in [%sFolder%]
)
) else (
echo Not found folder [%sFolder%]
)
endlocal
exit /b 0-
russur
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
Цитата russur:
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
Цитата russur:
Если жестко прописать строчку:
"D:\bik\arj32.exe" x "D:\bik\1800.arj" "d:\bik" -r
Вы продолжаете давать противоречивую информацию.
Так как же всё-таки у Вас зовётся исполняемый файл архиватора, а?
В этом батнике прописано: "D:\bik\arj.exe" x D:\bik\1800.arj D:\bik\-r
CMD/BAT - Переменная в батнике, зависимая от имени файла
Цитата russur:
Если жестко прописать строчку:
"D:\bik\arj32.exe" x "D:\bik\1800.arj" "d:\bik" -r
CMD/BAT - Переменная в батнике, зависимая от имени файла
Вы продолжаете давать противоречивую информацию.
Так как же всё-таки у Вас зовётся исполняемый файл архиватора, а?
-
Iska
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
D:\bik\arj32.exe - вот так, прошу прощения
Просто я делаю и на своём компе и на сервере за одно и путаюсь.
Архиватор лежит по пути D:\bik\arj32.exe
Просто я делаю и на своём компе и на сервере за одно и путаюсь.
Архиватор лежит по пути D:\bik\arj32.exe
-
russur
Re: CMD/BAT - Переменная в батнике, зависимая от имени файла
D:\bik\arj32.exe - вот так, прошу прощения
Просто я делаю и на своём компе и на сервере за одно и путаюсь.
Архиватор лежит по пути D:\bik\arj32.exe
Просто я делаю и на своём компе и на сервере за одно и путаюсь.
Архиватор лежит по пути D:\bik\arj32.exe