1
» Задачи на bat-файлах 8
Цитата:
да, это не атрибуты, но в Свойствах так отображается! то есть по разному в висте и хрэто различия в настройках системы, влияют только на показ этого сообщения. на работу батников - не влияют.
А не работает он у тебя по всем признакам от того, что не может найти какую-то прописанную в нем программу - т.е. смотреть надо на содержимое.
wolf0425
См. ПМ
См. ПМ
Доброго времени суток.
Имеется программа, fi_c44.exe. Нужен батник, который при запуске просил бы указать папку, из которой бы батник брал все имена *.jpg, и потом запускал бы программу fi_c44.exe с параметром в виде имени (например, "fi_c44.exe 1.jpg") и так последовательно для всех файлов картинок в указанной папке.
Это прога для конвертации jpg в djvu.
Помогите плиз, самому не одолеть...
Имеется программа, fi_c44.exe. Нужен батник, который при запуске просил бы указать папку, из которой бы батник брал все имена *.jpg, и потом запускал бы программу fi_c44.exe с параметром в виде имени (например, "fi_c44.exe 1.jpg") и так последовательно для всех файлов картинок в указанной папке.
Это прога для конвертации jpg в djvu.
Помогите плиз, самому не одолеть...
Dimau1981
Код:
@echo off
for %%i in (*.jpg) do fi_c44.exe "%%i"
Код:
@echo off
for %%i in (*.jpg) do fi_c44.exe "%%i"
Ага, спасибо. Работает, но после обработки всех файлов уходит в цикл, и начинает по новой..
Цитата:
после обработки всех файлов уходит в цикл, и начинает по новой..значит так:
Код: @echo off
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do fi_c44.exe "%%i"
Вот спасибо, так нормально!
Добавлено:
В чем может быть проблема:
Написал первый батник, в котором:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set str="local.txt"
set /p str=name file:
echo %str%
copy 1.bat %str%
copy freeimage.dll %str%
copy fi_c44.exe %str%
cd %str%
call 1.bat
И второй, в котором собственно
@echo off
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do fi_c44.exe "%%i"
Так при запуске все куда надо копируется, но при call 1.bat говорит, что файл не найден? Если запустить 1.bat из %str%, то отрабатывает нормально...
Добавлено:
В чем может быть проблема:
Написал первый батник, в котором:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set str="local.txt"
set /p str=name file:
echo %str%
copy 1.bat %str%
copy freeimage.dll %str%
copy fi_c44.exe %str%
cd %str%
call 1.bat
И второй, в котором собственно
@echo off
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do fi_c44.exe "%%i"
Так при запуске все куда надо копируется, но при call 1.bat говорит, что файл не найден? Если запустить 1.bat из %str%, то отрабатывает нормально...
а зачем тебе два батника то? так не работает?
Код: @echo off
set str="local.txt"
set /p str=name file:
echo %str%
cd %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "%~dp0\fi_c44.exe" "%%i"
Код: @echo off
set str="local.txt"
set /p str=name file:
echo %str%
cd %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "%~dp0\fi_c44.exe" "%%i"
Да, так говорит - файл не найден...
А если указать путь с именем файла - работает, но говорит что неверное имя папки, а хочется, чтобы по указанному пути все jpg подхватывало.
А если указать путь с именем файла - работает, но говорит что неверное имя папки, а хочется, чтобы по указанному пути все jpg подхватывало.
Ув. Гуру - надо вывести в файл по колонкам содержимое из логов 001.log-003.log в 001.log содержит имена компов : 002- мак -адреса : 003-имя пользователя
Надо Вывести так :
Имя копа МАК-адрес Имя пользователя
WS 01 00-13-20-22-9B-45 vasya
WS 02 00-22-55-ff- 12-7B chapaev
WS 03 00-13-20-22-9B-48 petya
Код:
del /q out.txt
chcp 1251
setlocal enabledelayedexpansion
echo Имя комьютера MAC-адрес Пользователь >>out.txt
for /f "tokens=*" %%i in (001.log) do set pc="%%i"
for /f "tokens=*" %%i in (002.log) do set mac="%%i"
for /f "tokens=*" %%i in (003.log) do set gen="%%i"
echo %pc% %mac% %gen% >> out.txt
Надо Вывести так :
Имя копа МАК-адрес Имя пользователя
WS 01 00-13-20-22-9B-45 vasya
WS 02 00-22-55-ff- 12-7B chapaev
WS 03 00-13-20-22-9B-48 petya
Код:
del /q out.txt
chcp 1251
setlocal enabledelayedexpansion
echo Имя комьютера MAC-адрес Пользователь >>out.txt
for /f "tokens=*" %%i in (001.log) do set pc="%%i"
for /f "tokens=*" %%i in (002.log) do set mac="%%i"
for /f "tokens=*" %%i in (003.log) do set gen="%%i"
echo %pc% %mac% %gen% >> out.txt
Помогите кто-нибудь, плиииз...
sergij
Проще через утилиту сделать
sed -n "5p" 1.log
выведет 5 строку 1.log
Добавлено:
Dimau1981
выложи лог, то есть запускаешь батник и копируешь из чёрного окошечка,
может вот здесь:
Цитата:
надо
%~dp0fi_c44.exe
Проще через утилиту сделать
sed -n "5p" 1.log
выведет 5 строку 1.log
Добавлено:
Dimau1981
выложи лог, то есть запускаешь батник и копируешь из чёрного окошечка,
может вот здесь:
Цитата:
%~dp0\fi_c44.exe
надо
%~dp0fi_c44.exe
sergij
Код: setlocal enabledelayedexpansion
:loop
for /f "tokens=* %skp%" %%i in (001.log) do (
0>nul 1>>out.txt 2>&1 set /p="pc=%%i "
for /f "tokens=* %skp%" %%i in (002.log) do (
0>nul 1>>out.txt 2>&1 set /p="mac=%%i "
for /f "tokens=* %skp%" %%i in (003.log) do (
0>nul 1>>out.txt 2>&1 set /p="gen=%%i "
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.
goto:loop
)))
pause
Код: setlocal enabledelayedexpansion
:loop
for /f "tokens=* %skp%" %%i in (001.log) do (
0>nul 1>>out.txt 2>&1 set /p="pc=%%i "
for /f "tokens=* %skp%" %%i in (002.log) do (
0>nul 1>>out.txt 2>&1 set /p="mac=%%i "
for /f "tokens=* %skp%" %%i in (003.log) do (
0>nul 1>>out.txt 2>&1 set /p="gen=%%i "
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.
goto:loop
)))
pause
Цитата:
if /i "_%skp%" equ "_" set "skp=0"ппц мне мозги этот финт переклинил.
set /a skp=!skp!+1
set "skp=skip=!skp!"
goto:loop
Сам придумал?
wolf0425
да вроде не мудрено...
Добавлено:
sergij
Код: chcp 1251
setlocal enabledelayedexpansion
echo Имя комьютера MAC-адрес Пользователь >>out.txt
:loop
for /f "tokens=* %skp%" %%i in (001.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (002.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (003.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i"
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.
goto:loop
)))
pause
да вроде не мудрено...
Добавлено:
sergij
Код: chcp 1251
setlocal enabledelayedexpansion
echo Имя комьютера MAC-адрес Пользователь >>out.txt
:loop
for /f "tokens=* %skp%" %%i in (001.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (002.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i "
for /f "tokens=* %skp%" %%i in (003.log) do (
0>nul 1>>out.txt 2>&1 set /p="%%i"
if /i "_%skp%" equ "_" set "skp=0"
set /a skp=!skp!+1
set "skp=skip=!skp!"
1>>out.txt 2>&1 echo.
goto:loop
)))
pause
Говорит - "Файл не найден"
подскажите как в цикл типа:
:beep
beep.com
timeout 1
goto :beep
вставить анализ нажатия клавиши, чтобы после нажатия любой клавиши, происходил переход на другую метку?
Добавлено:
вобщем задача привлечь внимание писком, вставить другой диск и продолжить копирование
если это можно покрасивше написать, подскажите!
:beep
beep.com
timeout 1
goto :beep
вставить анализ нажатия клавиши, чтобы после нажатия любой клавиши, происходил переход на другую метку?
Добавлено:
вобщем задача привлечь внимание писком, вставить другой диск и продолжить копирование
если это можно покрасивше написать, подскажите!
Не, не работает. Гуру, помогите плиз...
Ситуация такая - на G:\Soft\pic2djvu лежит прога.
Нужно, чтобы при запуске она спрашивала путь, и по нему конвертировала все лежащие там jpg в djvu. Параметр запуска отсутствет
(просто "fi_c44.exe 1.jpg"). Пока получилось
@echo off
set str="local.txt"
set /p str=name file:
echo %str%
cd %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "%~dp0fi_c44.exe" "%%i"
но это работает, только если прога лежит в, к примеру, b:\, а картинки - b:\1
Ситуация такая - на G:\Soft\pic2djvu лежит прога.
Нужно, чтобы при запуске она спрашивала путь, и по нему конвертировала все лежащие там jpg в djvu. Параметр запуска отсутствет
(просто "fi_c44.exe 1.jpg"). Пока получилось
@echo off
set str="local.txt"
set /p str=name file:
echo %str%
cd %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "%~dp0fi_c44.exe" "%%i"
но это работает, только если прога лежит в, к примеру, b:\, а картинки - b:\1
mugil_cephalus
не совсем то
скрипт остановится на строке
set /p tsk="Choose a task by number: "
и не будет пищать
не совсем то
скрипт остановится на строке
set /p tsk="Choose a task by number: "
и не будет пищать
kermit
можно поставить счетчик на, например, 10 beep'ov, но число этих бипов должно быть детерминированым, а не стохастическим (хотя можно и random)
вообще опиши подробнее задачу
Цитата:
то есть должно 1 раз пискнуть, потом Press any key to continue... , потом нажимаем любую клавишу и далее... ??
или должен пищать, пока не нажмешь клавишу?
можно поставить счетчик на, например, 10 beep'ov, но число этих бипов должно быть детерминированым, а не стохастическим (хотя можно и random)
вообще опиши подробнее задачу
Цитата:
вобщем задача привлечь внимание писком, вставить другой диск и продолжить копирование
то есть должно 1 раз пискнуть, потом Press any key to continue... , потом нажимаем любую клавишу и далее... ??
или должен пищать, пока не нажмешь клавишу?
Dimau1981
cd /d %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "G:\Soft\pic2djvu\прога.exe" "%%i"
kermit
Сторонние утилиты можно?
cd /d %str%
for /f "delims=" %%i in ('dir /b /a-d *.jpg') do "G:\Soft\pic2djvu\прога.exe" "%%i"
kermit
Сторонние утилиты можно?
king_stiven, спасибо огромное, все работает!
king_stiven
Цитата:
сторонние пока не рассматривал, хотелось бы штатными решить
а что, кстати, можно использовать для этого случая?
Пакет утилит для организации интерфейса в bat-файлах, Kix, или чегонить из ресурскитов?
Цитата:
Сторонние утилиты можно?
сторонние пока не рассматривал, хотелось бы штатными решить
а что, кстати, можно использовать для этого случая?
Пакет утилит для организации интерфейса в bat-файлах, Kix, или чегонить из ресурскитов?
kermit
Код: call:_1
:loop
if exist "%~dpn02.bat" (echo hi) else goto:exit
goto:loop
:_1
(echo pause
echo del /q "%~dpn02.bat")>"%~dpn02.bat"
start "" "%~dpn02.bat"
goto:eof
:exit
pause
Код: call:_1
:loop
if exist "%~dpn02.bat" (echo hi) else goto:exit
goto:loop
:_1
(echo pause
echo del /q "%~dpn02.bat")>"%~dpn02.bat"
start "" "%~dpn02.bat"
goto:eof
:exit
pause
kermit
Ну не знаю, как насчёт красоты, можно так:
Код: start "" /MIN 1.bat
echo нажимайте любую клавишу и противный звук перестанет давить на ваш моск!
pause> nul
taskkill /F /FI "WINDOWTITLE eq dfgh" /im cmd.exe /T
Ну не знаю, как насчёт красоты, можно так:
Код: start "" /MIN 1.bat
echo нажимайте любую клавишу и противный звук перестанет давить на ваш моск!
pause> nul
taskkill /F /FI "WINDOWTITLE eq dfgh" /im cmd.exe /T
как отформатить переносной винт в NTFS с подавлением всех вопросов?
Пишу в скрипте:
Код:
format E: /V:TEST /FS:NTFS /Q
Ув. mugil_cephalus
Большое спасибо за ваше внимание за ваше интересное решение такой проблемы
да всё получается как надо - если в логах выстроенно строчка за строчкой
но у меня логи идут через строчку ( просто это один из многих этапов обработки текста и вывод в логи получается через строчку) и вот после их обработки получается удвоение каждого компа мака и юзера т.е .
WS 01 0001445566 vasya
WS 01 0001445566 vasya
WS 02 0011223344 petya
WS 02 0011223344 petya итд
Я конечно итак Вам безмерно благодарен - буду и сам разбираться но если Вас не затруднит .....
king_stiven Вам тоже спасибо - просто хотелось бы без sed
Большое спасибо за ваше внимание за ваше интересное решение такой проблемы
да всё получается как надо - если в логах выстроенно строчка за строчкой
но у меня логи идут через строчку ( просто это один из многих этапов обработки текста и вывод в логи получается через строчку) и вот после их обработки получается удвоение каждого компа мака и юзера т.е .
WS 01 0001445566 vasya
WS 01 0001445566 vasya
WS 02 0011223344 petya
WS 02 0011223344 petya итд
Я конечно итак Вам безмерно благодарен - буду и сам разбираться но если Вас не затруднит .....
king_stiven Вам тоже спасибо - просто хотелось бы без sed
sergij
замени
set /a skp=!skp!+1 на
set /a skp=!skp!+2
замени
set /a skp=!skp!+1 на
set /a skp=!skp!+2
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
Предыдущая тема: XP не видит второй раздел на съемном USB-HDD
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.