Всё равно имеем полный доступ...
» Задачи на bat-файлах 10
superman md
Цитата:
Поставь задержку:
Код:
@echo off
setlocal
pushd "%~dp0"
for /f "tokens=2" %%i in (' echo list volume ^| diskpart ') do set /a volume=%%i+1
(
echo select vdisk file="%~dp0asus.vhd"
echo attach vdisk
) | diskpart
2>nul waitfor faik /t 3
(
echo select volume %volume%
echo attributes volume set readonly
echo exit
) | diskpart
popd
Цитата:
Всё равно имеем полный доступ...
Поставь задержку:
Код:
@echo off
setlocal
pushd "%~dp0"
for /f "tokens=2" %%i in (' echo list volume ^| diskpart ') do set /a volume=%%i+1
(
echo select vdisk file="%~dp0asus.vhd"
echo attach vdisk
) | diskpart
2>nul waitfor faik /t 3
(
echo select volume %volume%
echo attributes volume set readonly
echo exit
) | diskpart
popd
01MDM
Спасибо огромное, всё работает...
Я уже и не надеялся..
Сам бы точно ничего не сделал...
Спасибо огромное, всё работает...
Я уже и не надеялся..
Сам бы точно ничего не сделал...
Для каждого *.mov файла нужно создать *.avs файл с некоторым текстом. Пытаюсь это сделать с помощью батника:
Код:
chcp 1251
@echo off
for %%i in (*.mov) do 1>%%~ni.avs (
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mvtools2.dll"^)
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\MT.dll"^)
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\QTSource.dll"^)
echo QTInput("%%~ni.mov"^)
echo MT("""^
echo multinum=2^
echo multiden=1^
echo mask=2^
echo ml=10000^
echo super = MSuper(pel=2, hpad=16, vpad=16^)
echo bv1=MAnalyse(super, isb=true, blksize=16, overlap=8, searchparam=1, plevel=2^)
echo fv1=MAnalyse(super, isb=false,blksize=16, overlap=8, searchparam=1, plevel=2^)
echo forward_re = MRecalculate(super, fv1, blksize=8, overlap=4, thSAD=100, searchparam=1^)
echo backward_re = MRecalculate(super, bv1, blksize=8, overlap=4, thSAD=100, searchparam=1^)
echo MFlowFps(super,backward_re,forward_re,num=FramerateNumerator(last)*multinum,den=FramerateDenominator(last)*multiden,mask=mask,ml=ml^)
echo """, threads=4, overlap=16, splitvertical=false^)
)
pause
exit
Код:
chcp 1251
@echo off
for %%i in (*.mov) do 1>%%~ni.avs (
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mvtools2.dll"^)
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\MT.dll"^)
echo LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\QTSource.dll"^)
echo QTInput("%%~ni.mov"^)
echo MT("""^
echo multinum=2^
echo multiden=1^
echo mask=2^
echo ml=10000^
echo super = MSuper(pel=2, hpad=16, vpad=16^)
echo bv1=MAnalyse(super, isb=true, blksize=16, overlap=8, searchparam=1, plevel=2^)
echo fv1=MAnalyse(super, isb=false,blksize=16, overlap=8, searchparam=1, plevel=2^)
echo forward_re = MRecalculate(super, fv1, blksize=8, overlap=4, thSAD=100, searchparam=1^)
echo backward_re = MRecalculate(super, bv1, blksize=8, overlap=4, thSAD=100, searchparam=1^)
echo MFlowFps(super,backward_re,forward_re,num=FramerateNumerator(last)*multinum,den=FramerateDenominator(last)*multiden,mask=mask,ml=ml^)
echo """, threads=4, overlap=16, splitvertical=false^)
)
pause
exit
Vladins
утилиты?
утилиты?
Vladins
Цитата:
Надо так:
Код: echo MFlowFps(super,backward_re,forward_re,num=FramerateNumerator(last^)*multinum,den=FramerateDenominator(last^)*multiden,mask=mask,ml=ml^)
Цитата:
Но на строке echo MFlowFps(super,backward_re,forward_re,num=FramerateNumerator(last)*multinum,den=FramerateDenominator(last)*multiden,mask=mask,ml=ml^) батник вылетает, что то неправильно с символами.Подскажите что неправильно?
Надо так:
Код: echo MFlowFps(super,backward_re,forward_re,num=FramerateNumerator(last^)*multinum,den=FramerateDenominator(last^)*multiden,mask=mask,ml=ml^)
Ortios Спасибо, работает!
king_stiven Не понял суть вопроса...
king_stiven Не понял суть вопроса...
Всем доброго времени суток!
Помогите сделать следующий batник:
чтобы при двойном клике по файлу появлялось окно оболочки примерного следующего формата:
1.ping
2.tracert
3.hostname
4.ipconfig
Введите порядковый номер:
При вводе номера чтобы данное окно закрывалось и открывалось новое окно, либо пустое для ввода имени сервера или компьютера или IP-адреса (команда ping или tracert), либо с выводом соответствующей информации (команда hostname или ipconfig)
С уважением!
Помогите сделать следующий batник:
чтобы при двойном клике по файлу появлялось окно оболочки примерного следующего формата:
1.ping
2.tracert
3.hostname
4.ipconfig
Введите порядковый номер:
При вводе номера чтобы данное окно закрывалось и открывалось новое окно, либо пустое для ввода имени сервера или компьютера или IP-адреса (команда ping или tracert), либо с выводом соответствующей информации (команда hostname или ipconfig)
С уважением!
FantoMax2
Код: @echo off
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Введите порядковый номер: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
goto:eof
:ping
set /p adr="Введите IP адрес или имя хоста: "
ping %adr%
goto:eof
:tracert
:hostname
:ipconfig
Код: @echo off
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Введите порядковый номер: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
goto:eof
:ping
set /p adr="Введите IP адрес или имя хоста: "
ping %adr%
goto:eof
:tracert
:hostname
:ipconfig
Цитата:
@echo off
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Введите порядковый номер: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
goto:eof
:ping
set /p adr="Введите IP адрес или имя хоста: "
ping %adr%
goto:eof
:tracert
:hostname
:ipconfig
Сейчас при нажатии в командной оболочке цифры 3 или 4 окно пропадает, а нужно чтобы выводилась требуемая по команде информация, лучше чтобы открывалось новое окно командной оболочки с нужной инфой. Помогите сделать :-( очень нужно!
FantoMax2
Цитата:
Ну да, я сделал только пинги, думал ты сам доработаешь остальные пункты по аналогии.
Полностью видимо так будет:
[more=Код]
Код: @echo off
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Введите порядковый номер: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
goto:eof
:ping
set /p adr="Введите IP адрес или имя хоста: "
ping %adr%
goto:end
:tracert
set /p adr="Введите IP адрес или имя хоста: "
tracert %adr%
goto:end
:hostname
hostname
goto:end
:ipconfig
ipconfig /all
:end
pause
Цитата:
Сейчас при нажатии в командной оболочке цифры 3 или 4 окно пропадает, а нужно чтобы выводилась требуемая по команде информация, лучше чтобы открывалось новое окно командной оболочки с нужной инфой. Помогите сделать
Ну да, я сделал только пинги, думал ты сам доработаешь остальные пункты по аналогии.
Полностью видимо так будет:
[more=Код]
Код: @echo off
echo 1.ping
echo 2.tracert
echo 3.hostname
echo 4.ipconfig
set /p num="Введите порядковый номер: "
cls
if "%num%" equ "1" goto:ping
if "%num%" equ "2" goto:tracert
if "%num%" equ "3" goto:hostname
if "%num%" equ "4" goto:ipconfig
goto:eof
:ping
set /p adr="Введите IP адрес или имя хоста: "
ping %adr%
goto:end
:tracert
set /p adr="Введите IP адрес или имя хоста: "
tracert %adr%
goto:end
:hostname
hostname
goto:end
:ipconfig
ipconfig /all
:end
pause
Цитата:
Ну да, я сделал только пинги, думал ты сам доработаешь остальные пункты по аналогии.
Полностью видимо так будет:
Код
Огромное спасибо за помощь! Буду дорабатывать дальше под свои цели, чтобы окно не пропадало, а открывалось новое с инфой!
FantoMax2
Код поправил, добавил паузу в конце, чтобы окно не закрывалось.
Код поправил, добавил паузу в конце, чтобы окно не закрывалось.
Цитата:
Код поправил, добавил паузу в конце, чтобы окно не закрывалось.
Огромное спасибо за помощь! Только начал изучать BAT-файлы, так что ещё много чему учиться!
Спасибо!
Доброе время суток!
Сделал батник, который конвертирует .WAV и .FLAC файлы в .MP3 используя консольные утилиты flac и lame. Условием работы программы есть наличие в %ProgramFiles% самых утилит (\FLAC\flac.exe и \LAME\lame.exe).
Сам являюсь не очень опытным, или может очень неопытным в написании батников, потому хотелось бы узнать Ваше мнение на счет этого скрипта, может какие-то недочеты, какой-то кусок кода реализовать по-другому, более продуктивней или логичней. Жду отзывов .
Код: @echo off
REM УКАЗЫВАЕМ ПУТЬ ГДЕ НАХОДЯТСЯ КОНВЕРТЕРЫ
set PATH="%ProgramFiles%\FLAC";"%ProgramFiles%\LAME";%PATH%
if (%1) == () (
echo Error: Arg required!
goto :EOF
)
REM ПРОВЕРЯЕМ СУЩЕСТВУЕТ ЛИ КУЙ В ПАПКЕ НАЗНАЧЕНИЯ (%1)
if /i exist "%1\*.cue" (
dir /b "%1\*.cue">cue_name.tmp
set /p cue_name=<cue_name.tmp
) else (
echo Error: .cue not found
goto :EOF
)
REM ПРОВЕРЯЕМ СУЩЕСТВУЮТ ЛИ ФАЙЛЫ (.FLAC)
if /i exist "%1\*.FLAC" (
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for /f "tokens=* " %%i in ('dir /b %1\*.FLAC') do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
REM ТОЖЕ САМОЕ ДЛЯ (.WAV)
) else if /i exist "%1\*.WAV" (
for /f "tokens=* " %%i in ('dir /b %1\*.WAV') do (
call :convert %1 "%%i"
)
)
pause
goto :EOF
:convert
SETLOCAL
REM ИЩЕМ В .CUE СТРОЧКИ И ЗАПИСЫВАЕМ ИХ В ВРЕМЕННЫЕ ФАЙЛЫ
for %%i in (genre date title performer) do (
findstr /i /C:"%%i" "%1\%cue_name%" >%%i.tmp
set /p %%i=<%%i.tmp
)
REM ИМЯ СОХРАНЯЕМОГО (ПОСЛЕ КОНВЕРТАЦИИ ) ФАЙЛА
set file_name=%~n2
REM ТУТ ИЗВРАЩЕНСТВО, НО ПО ДРУГОМУ НЕ ДОДУМАЛСЯ КАК. ПЕРЕДАЁМ В LAME ИМЯ (.WAV) ФАЙЛА, ФАЙЛА (.MP3), ТЕГИ И "КАЧЕСТВО"
lame -q 0 -b 320 "%1\%~n2".wav "%1\%~n2".mp3 --ty "%date:~9,100%" --ta "%performer:~11,-1%" --tg "%genre:~10,100%" --tl "%title:~7,-1%" --tn "%file_name:~0,2%" --tt "%file_name:~4,100%"
ENDLOCAL
del *.tmp
Сделал батник, который конвертирует .WAV и .FLAC файлы в .MP3 используя консольные утилиты flac и lame. Условием работы программы есть наличие в %ProgramFiles% самых утилит (\FLAC\flac.exe и \LAME\lame.exe).
Сам являюсь не очень опытным, или может очень неопытным в написании батников, потому хотелось бы узнать Ваше мнение на счет этого скрипта, может какие-то недочеты, какой-то кусок кода реализовать по-другому, более продуктивней или логичней. Жду отзывов .
Код: @echo off
REM УКАЗЫВАЕМ ПУТЬ ГДЕ НАХОДЯТСЯ КОНВЕРТЕРЫ
set PATH="%ProgramFiles%\FLAC";"%ProgramFiles%\LAME";%PATH%
if (%1) == () (
echo Error: Arg required!
goto :EOF
)
REM ПРОВЕРЯЕМ СУЩЕСТВУЕТ ЛИ КУЙ В ПАПКЕ НАЗНАЧЕНИЯ (%1)
if /i exist "%1\*.cue" (
dir /b "%1\*.cue">cue_name.tmp
set /p cue_name=<cue_name.tmp
) else (
echo Error: .cue not found
goto :EOF
)
REM ПРОВЕРЯЕМ СУЩЕСТВУЮТ ЛИ ФАЙЛЫ (.FLAC)
if /i exist "%1\*.FLAC" (
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for /f "tokens=* " %%i in ('dir /b %1\*.FLAC') do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
REM ТОЖЕ САМОЕ ДЛЯ (.WAV)
) else if /i exist "%1\*.WAV" (
for /f "tokens=* " %%i in ('dir /b %1\*.WAV') do (
call :convert %1 "%%i"
)
)
pause
goto :EOF
:convert
SETLOCAL
REM ИЩЕМ В .CUE СТРОЧКИ И ЗАПИСЫВАЕМ ИХ В ВРЕМЕННЫЕ ФАЙЛЫ
for %%i in (genre date title performer) do (
findstr /i /C:"%%i" "%1\%cue_name%" >%%i.tmp
set /p %%i=<%%i.tmp
)
REM ИМЯ СОХРАНЯЕМОГО (ПОСЛЕ КОНВЕРТАЦИИ ) ФАЙЛА
set file_name=%~n2
REM ТУТ ИЗВРАЩЕНСТВО, НО ПО ДРУГОМУ НЕ ДОДУМАЛСЯ КАК. ПЕРЕДАЁМ В LAME ИМЯ (.WAV) ФАЙЛА, ФАЙЛА (.MP3), ТЕГИ И "КАЧЕСТВО"
lame -q 0 -b 320 "%1\%~n2".wav "%1\%~n2".mp3 --ty "%date:~9,100%" --ta "%performer:~11,-1%" --tg "%genre:~10,100%" --tl "%title:~7,-1%" --tn "%file_name:~0,2%" --tt "%file_name:~4,100%"
ENDLOCAL
del *.tmp
sL4yer
Цитата:
Если в каталоге несколько cue файлов, то возьмется только последний возвращенный dir. Тебя это устраивает?
Можно присваивать переменным и без временного файла:
for /f "tokens=* " %%i in ('dir /b %1\*.сue') do set cue_name=%%~i
Цитата:
dir /b "%1\*.cue">cue_name.tmp
set /p cue_name=<cue_name.tmp
Если в каталоге несколько cue файлов, то возьмется только последний возвращенный dir. Тебя это устраивает?
Можно присваивать переменным и без временного файла:
for /f "tokens=* " %%i in ('dir /b %1\*.сue') do set cue_name=%%~i
res2001
Цитата:
да, условие, что в папке должен быть только один cue.
Цитата:
точно! Я забыл, что поставил проверку вначале , точнее я её поставил после того как написал алгоритм. Только в этом выражении не понятно %%~i
что означает эта тильда?
Цитата:
Если в каталоге несколько cue файлов, то возьмется только последний возвращенный dir. Тебя это устраивает?
да, условие, что в папке должен быть только один cue.
Цитата:
for /f "tokens=* " %%i in ('dir /b %1\*.сue') do set cue_name=%%~i
точно! Я забыл, что поставил проверку вначале , точнее я её поставил после того как написал алгоритм. Только в этом выражении не понятно %%~i
что означает эта тильда?
sL4yer
Цитата:
убирает обрамляющие кавычки, если они есть.
Добавлено:
sL4yer
И еще, судя по коду у тебя обрабатываются флаки, если их нет вавы. А если в каталоге и то и другое есть, то обработаются только флаки. Это так и задумано?
Кстати, перебор файлов удобнее делать таким циклом: for %%i in (*.wav *.flac) do ...
без дира.
Добавлено:
И можно не проверять на присутствие файлов - если файлов нет, то цикл не выполнится, а тебе это и нужно.
Цитата:
этом выражении не понятно %%~i
что означает эта тильда?
убирает обрамляющие кавычки, если они есть.
Добавлено:
sL4yer
И еще, судя по коду у тебя обрабатываются флаки, если их нет вавы. А если в каталоге и то и другое есть, то обработаются только флаки. Это так и задумано?
Кстати, перебор файлов удобнее делать таким циклом: for %%i in (*.wav *.flac) do ...
без дира.
Добавлено:
И можно не проверять на присутствие файлов - если файлов нет, то цикл не выполнится, а тебе это и нужно.
Народ, вобщем такой вопрос. Можно ли создать батник, который убирает из скаченных из интернета файлов в атрибутах которых появляется предупреждение "этот файл получен с другого компьютера..." и чтоб это снять, нужно нажимать кнопку"разблокировать". Этот атрибут появляется при скачивании файла например мозилой или IE. А когда скачиваешь много файлов, то надоедает заходить в свойства каждого. Можно ли написать батник для разблокировки всех файлов, находящихся в одной папке с этим же батником?
INKOGNI
А как это воспроизвести? У меня такого нет.
Посмотрел в свойствах файла, есть кнопка разблокировать, но зачем она? Все и так открывается.
А как это воспроизвести? У меня такого нет.
Посмотрел в свойствах файла, есть кнопка разблокировать, но зачем она? Все и так открывается.
01MDM
Просто сохранить какую-нибудь картинку или скачать файл через Mozilla Firefox. И потом посмотреть в свойствах скаченного файла. Насколько я понял, то создается дополнительный информационный поток данных NTFS. Например если проверить заблокированную картинку антивирусом (я использую касперского), то в отчете будет, что проверено 2 файла. Если разблокировать, то при проверке 1 файл как и есть. Вобщем нашел в интернете утилу, которая удаляет эти "блочные" потоки у файлов.
Если интересно, то можно прочитать тут:
http://technet.microsoft.com/ru-ru/sysinternals/bb897440
для разблокировки сразу многих файлов использовал утилу STREAMS (от Марка Руссиновича) с ключом -d
Просто сохранить какую-нибудь картинку или скачать файл через Mozilla Firefox. И потом посмотреть в свойствах скаченного файла. Насколько я понял, то создается дополнительный информационный поток данных NTFS. Например если проверить заблокированную картинку антивирусом (я использую касперского), то в отчете будет, что проверено 2 файла. Если разблокировать, то при проверке 1 файл как и есть. Вобщем нашел в интернете утилу, которая удаляет эти "блочные" потоки у файлов.
Если интересно, то можно прочитать тут:
http://technet.microsoft.com/ru-ru/sysinternals/bb897440
для разблокировки сразу многих файлов использовал утилу STREAMS (от Марка Руссиновича) с ключом -d
INKOGNI
Ага. посмотрел, файлы действительно с альтернативным потоком.
Ага. посмотрел, файлы действительно с альтернативным потоком.
INKOGNI
А не проще в групповых политиках включить: Административные шаблоны>>Компоненты Widows>>Диспетчер вложений>>Удаление сведений о зоне происхождения.
А не проще в групповых политиках включить: Административные шаблоны>>Компоненты Widows>>Диспетчер вложений>>Удаление сведений о зоне происхождения.
kirsha
мне нужно было именно решение в виде батника или утилита, которая удаляет эти потоки. Похоже с батником возникло затруднение. Зато на просторах инета нашел несколько решений. Например утилитку STREAMS (от Марка Руссиновича) с ключем -d и потоки в указанной директории у всех файлов пропадают автоматом. И нет необходимости настраивать виндовс или разблокировать каждый файл по отдельности.
Добавлено:
Вот мое решение: http://rghost.ru/4896824
Народ, как исправить батник, у меня стоит папка "C:\1" на удаление потоков, а мне нужно, чтоб удалялось в той же папке, где сам батник и утила?
мне нужно было именно решение в виде батника или утилита, которая удаляет эти потоки. Похоже с батником возникло затруднение. Зато на просторах инета нашел несколько решений. Например утилитку STREAMS (от Марка Руссиновича) с ключем -d и потоки в указанной директории у всех файлов пропадают автоматом. И нет необходимости настраивать виндовс или разблокировать каждый файл по отдельности.
Добавлено:
Вот мое решение: http://rghost.ru/4896824
Народ, как исправить батник, у меня стоит папка "C:\1" на удаление потоков, а мне нужно, чтоб удалялось в той же папке, где сам батник и утила?
INKOGNI
Цитата:
А зачем батник, когда есть streams? Можно и батником:
Код:
@echo off
for %%i in (*.*) do (
ren "%%i" "%%i.stream"
1>"%%i" type "%%i.stream"
del "%%i.stream"
)
Цитата:
Похоже с батником возникло затруднение.
А зачем батник, когда есть streams? Можно и батником:
Код:
@echo off
for %%i in (*.*) do (
ren "%%i" "%%i.stream"
1>"%%i" type "%%i.stream"
del "%%i.stream"
)
01MDM
отлично, спасибо, то что нужно было изначально
отлично, спасибо, то что нужно было изначально
res2001
Цитата:
нет, вот тут и прокол . Если есть флак - переганяю его в вейв, а потом вейв в мп3. Нужно просто переставить местами .
Цитата:
точно! Только нужно добавить %1\*.wav, так как батник запускается из другой директории, и это FLAC -d "%1\%%i" -f заменить FLAC -d "%%i" -f. Так увлёкся "for /f", что забыл что существует и другой способ .
Цитата:
думаю лучше добавить в конец что-то типа такого, что бы было понятно, почему программа вылетела/не работает .
) else (
echo Error: Files not found.
)
конечная переработка
Код:
if /i exist "%1\*.WAV" (
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for %%i in (%1\*.WAV) do call :convert %1 "%%i"
) else if /i exist "%1\*.FLAC" (
REM ТОЖЕ САМОЕ ДЛЯ (.FLAC)
for %%i in (%1\*.FLAC) do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
) else (
echo Error: Files not found.
)
Цитата:
А если в каталоге и то и другое есть, то обработаются только флаки. Это так и задумано?
нет, вот тут и прокол . Если есть флак - переганяю его в вейв, а потом вейв в мп3. Нужно просто переставить местами .
Цитата:
таким циклом: for %%i in (*.wav *.flac) do ...
точно! Только нужно добавить %1\*.wav, так как батник запускается из другой директории, и это FLAC -d "%1\%%i" -f заменить FLAC -d "%%i" -f. Так увлёкся "for /f", что забыл что существует и другой способ .
Цитата:
И можно не проверять на присутствие файлов - если файлов нет, то цикл не выполнится, а тебе это и нужно.
думаю лучше добавить в конец что-то типа такого, что бы было понятно, почему программа вылетела/не работает .
) else (
echo Error: Files not found.
)
конечная переработка
Код:
if /i exist "%1\*.WAV" (
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for %%i in (%1\*.WAV) do call :convert %1 "%%i"
) else if /i exist "%1\*.FLAC" (
REM ТОЖЕ САМОЕ ДЛЯ (.FLAC)
for %%i in (%1\*.FLAC) do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
) else (
echo Error: Files not found.
)
Прошу помощи в решении возникшего вопроса.
Написан стартово-контрольный пакетный файл с целью установки ПО
коротко выглядит так
Код:
@echo off
if not exist RevoUninProSetup.exe goto error
start /wait RevoUninProSetup.exe /verysilent /sp-
if not exist "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\" goto error
taskkill /f /im "RevoUninPro.exe" /t
cd ~
echo N|start /wait regedit /s settings.reg
copy /y Patch-JW.exe "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\"
cd /d "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\"
start /wait Patch-JW.exe
del /f /q Patch-JW
start RevoUninPro.exe
Написан стартово-контрольный пакетный файл с целью установки ПО
коротко выглядит так
Код:
@echo off
if not exist RevoUninProSetup.exe goto error
start /wait RevoUninProSetup.exe /verysilent /sp-
if not exist "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\" goto error
taskkill /f /im "RevoUninPro.exe" /t
cd ~
echo N|start /wait regedit /s settings.reg
copy /y Patch-JW.exe "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\"
cd /d "%ProgramFiles%\VS Revo Group\Revo Uninstaller Pro\"
start /wait Patch-JW.exe
del /f /q Patch-JW
start RevoUninPro.exe
sL4yer
Цитата:
Местами переставил, теперь наоборот: есть вавы - обрабатываются только они, а флаки нет.
Думаю лучше сделать так:
Код: if /i not exist "%1\*.WAV" if /i not exist "%1\*.FLAC" echo Error: Files not found. & exit
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for %%i in (%1\*.WAV) do call :convert %1 "%%i"
REM ТОЖЕ САМОЕ ДЛЯ (.FLAC)
for %%i in (%1\*.FLAC) do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
Цитата:
нет, вот тут и прокол
Местами переставил, теперь наоборот: есть вавы - обрабатываются только они, а флаки нет.
Думаю лучше сделать так:
Код: if /i not exist "%1\*.WAV" if /i not exist "%1\*.FLAC" echo Error: Files not found. & exit
REM ПЕРЕБИРАЕМ ВСЕ ФАЙЛЫ В ПАПКЕ НАЗНАЧЕНИЯ И ПЕРЕДАЕМ ИХ КОНВЕРТЕРУ В КАЧЕСТВЕ ПАРАМЕТРОВ
for %%i in (%1\*.WAV) do call :convert %1 "%%i"
REM ТОЖЕ САМОЕ ДЛЯ (.FLAC)
for %%i in (%1\*.FLAC) do (
FLAC -d "%1\%%i" -f
call :convert %1 "%%i"
)
res2001
это для случая, если у меня в папке лежат файлы с одного альбома, но только с разными расширениями, типа этого:
01. Refuse-Resist.wav
это для случая, если у меня в папке лежат файлы с одного альбома, но только с разными расширениями, типа этого:
01. Refuse-Resist.wav
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
Предыдущая тема: зависает установка Windows XP: 39 минут
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.