Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: KapralBel
Дата сообщения: 04.01.2008 23:29
SymA
dir *.txt

Добавлено:
for %%a in (*.txt) do echo %%a
Автор: SymA
Дата сообщения: 05.01.2008 01:25
KapralBel благодарю
как в tmp.txt удалить каждые 50 строк через интервал в 500 строк ?
Автор: 01MDM
Дата сообщения: 05.01.2008 09:39
:sad:
Автор: king_stiven
Дата сообщения: 05.01.2008 12:37
SymA

за скоростью не гнался, можно совершенствовать

@echo off
for /f "usebackq tokens=*" %%j in ("text.tmp") do (
if not DEFINED p echo %%j>> "text.txt"
set /a size+=1
call :uio
)
goto :eof
:uio
if not DEFINED p (
if "%size%" EQU "500" (
set p=1
set size=
)
) else (
if "%size%" EQU "50" (
set p=
set size=
)
)
Автор: vamh
Дата сообщения: 05.01.2008 21:17
Ребята, а есть готовое решение для сохранения-восстановления после переустановки файло активации WinXP ?
Автор: SymA
Дата сообщения: 06.01.2008 00:03
king_stiven
а что делать если в файле такие значки ?
[no]
Ц—ь0PqG!ЎЂ
у»7џяЧконе/«u«vк®іЭќ¶є” )GзїN‹&ио_/™’ЊЪ>™яыp
[/no]
Автор: king_stiven
Дата сообщения: 06.01.2008 03:03
SymA

и что, у меня прошли нормально
Автор: wolf0425
Дата сообщения: 06.01.2008 13:00
king_stiven значки проходят нормально,
а вот про пустые строки и строки начинающиеся с пробелов - такое не скажешь...
Автор: zx12r
Дата сообщения: 06.01.2008 13:37
Народ, помогите, не получается у меня.

Задача такая:

В папке c:\new\ раз в день создается 50 mp3 файлов с разными именами.

Небходим батник, который будет переименовывать файлы так, чтобы оставалось расширение файла и 11 символов до расширения файла

т.е. например есть файл the_new_track01.mp3, нужно чтобы осталось только new_track01.mp3

вобщем чтобы все файлы в папке приводились к формату 11.3 , но именно 11 последних символов. Вот.

Автор: king_stiven
Дата сообщения: 06.01.2008 13:49
zx12r

set /?
for /?
ren /?

Добавлено:
wolf0425

Тогда можно юзать текстовые утилиты, возможно там есть решение. Или включить доп. проверку на пробел или пустую строку(возможно даже и не получится, не пробовал).
Автор: zx12r
Дата сообщения: 06.01.2008 14:22
king_stiven


Цитата:
zx12r

set /?
for /?
ren /?


Мне как раз непонятно как извлечь 11 символов из имени файла. С остальным я справлюсь. Подскажи плиз.
Автор: SymA
Дата сообщения: 06.01.2008 14:23
подскажите, реально ли перевести эти значки в читабельный вид ? может шрифта какого не хватает ?
[no]mЮЯ˜Я"Є©V¤ыsџmїс{ё3Є–ыє¤ кgў)НЅЎ+@яыrЂ
МI!ТCдщU$"(I {/$jIњ&0ЂЋђЛ(Ж    U±Cз4К(ф в‚ЗџO6|чпНќНює‹мЇR•eК[/no]


Цитата:
king_stiven
Добавлено:
wolf0425
Тогда можно юзать текстовые утилиты, возможно там есть решение. Или включить доп. проверку на пробел или пустую строку(возможно даже и не получится, не пробовал).


для меня текстовые утилиты не подходят
помогите
Цитата:
включить доп. проверку на пробел или пустую строку

Автор: Nagual
Дата сообщения: 06.01.2008 14:39
zx12r
берешь Total Commander, выделяешь нужные файлы, нажимаешь Ctrl+M
вводишь маску переименования: [N5-]
Автор: zx12r
Дата сообщения: 06.01.2008 14:42
Nagual

Спасибо. Я знаю как переименовать файлы сторонними средствами. Но мне нужно сделать это BAT-ФАЙЛОМ, который будет в шедулере постоянно крутиться.

люди как все-таки извлечь 11 последних символов из имени файла в bat-файле
Автор: Nagual
Дата сообщения: 06.01.2008 15:02
zx12r
test.cmd
Код: @[no]echo[/no] off
[no]for[/no] /f "tokens[no]=[/no]1[no]*[/no] delims[no]=[/no]_" [no]%%a[/no] [no]in[/no] ('[no]dir[/no]/b [no]*[/no]') [no]do[/no] [no]ren[/no] "[no]%%a[/no]_[no]%%b[/no]" "[no]%%b[/no]"
Автор: Elroir
Дата сообщения: 06.01.2008 15:30
zx12r

Код:
@echo off
for %%a in (*.mp3) do (
set "name=%%~na"
call :ren_file
)
goto :EOF
:ren_file
set "newname=%name:~-11%"
ren "%name%.mp3" "%newname%.mp3"
Автор: king_stiven
Дата сообщения: 06.01.2008 15:40
zx12r


SET PATH=имя файла
echo %PATH:~-11%
оставит 11 последних знаков имени файла
Автор: zx12r
Дата сообщения: 06.01.2008 15:43
2ALL
СПАСИБО! Вы мне аццки помогли. Благодарен.

~-11 <---- вот нигде не мог найти этого. Спасиб.
Автор: Elroir
Дата сообщения: 06.01.2008 15:46
king_stiven
Ты бы все-таки поосторожнее с переменной PATH...
Автор: SymA
Дата сообщения: 06.01.2008 16:48
подскажите, реально ли перевести эти значки в читабельный вид ? может шрифта какого не хватает ?
[no]
mЮЯ&#152;Я"Є©V¤ыsџmїс{ё3Є–ыє¤ кgў)НЅЎ+@яыrЂ
МI!ТCдщU$"(I {/$jIњ&0ЂЋђЛ(Ж U±Cз4К(ф в‚ЗџO6|чпНќНює‹мЇR•eК
[/no]


Цитата:
king_stiven
Добавлено:
wolf0425
Тогда можно юзать текстовые утилиты, возможно там есть решение. Или включить доп. проверку на пробел или пустую строку(возможно даже и не получится, не пробовал).




для меня текстовые утилиты не подходят
помогите

Цитата:
включить доп. проверку на пробел или пустую строку
сюда

Код: @echo off
for /f "usebackq tokens=*" %%j in ("text.tmp") do (
if not DEFINED p echo %%j>> "text.txt"
set /a size+=1
call :uio
)
goto :eof
:uio
if not DEFINED p (
if "%size%" EQU "500" (
set p=1
set size=
)
) else (
if "%size%" EQU "50" (
set p=
set size=
)
)
Автор: 01MDM
Дата сообщения: 06.01.2008 16:57
SymA


Цитата:

mЮЯ&#152;Я"Є©V¤ыsџmїс{ё3Є–ыє¤ кgў)НЅЎ+@яыrЂ
МI!ТCдщU$"(I {/$jIњ&0ЂЋђЛ(Ж U±Cз4К(ф в‚ЗџO6|чпНќНює‹мЇR•eК

Какая кодировка?
Автор: SymA
Дата сообщения: 06.01.2008 17:14
01MDM
текстовый редактор BRED2 показывает кодировку ANSI (1251)
а вообще - текст из открытого в блокноте mp3 файла . . .
Автор: 01MDM
Дата сообщения: 06.01.2008 18:14
SymA
И что ты хочешь получить? Ноты?
Автор: SymA
Дата сообщения: 06.01.2008 18:19
нет, а хотелось бы
получу эффект "файла, скопированного с царапанного диска"
Автор: Nagual
Дата сообщения: 06.01.2008 18:22
Вот объединил код для создания паузы средствами системы без сторонних утилит, даже без ping
delay.cmd
Код: @[no]echo[/no] off
[no]chcp[/no] 1251[no]>[/no][no]nul[/no]
[no]:: Некоторые действия[/no]

[no]set[/no] "ctime1[no]=%time:~0,-3%[/no]"
[no]set[/no] /a "sec1[no]=[/no]36000[no]*%time:~0,1%+[/no]3600[no]*%time:~1,1%+[/no]600[no]*%time:~3,1%+[/no]60[no]*%time:~4,1%+[/no]10[no]*%time:~6,1%+%time:~7,1%[/no]"
[no]echo[/no] Сейчас: [no]%ctime1%[/no]
[no]:: Установите паузу в секундах[/no]
call:sleep 5
[no]:: Другие действия[/no]

[no]set[/no] "ctime2[no]=%time:~0,-3%[/no]"
[no]set[/no] /a "sec2[no]=[/no]36000[no]*%time:~0,1%+[/no]3600[no]*%time:~1,1%+[/no]600[no]*%time:~3,1%+[/no]60[no]*%time:~4,1%+[/no]10[no]*%time:~6,1%+%time:~7,1%[/no]"
[no]set[/no] /a "math[no]=%sec2%[/no]-[no]%sec1%[/no]"
[no]echo[/no] Сейчас: [no]%ctime2%[/no]. Прошло [no]%sec2%[/no]-[no]%sec1%=%math%[/no] секунд.
[no]pause[/no]
goto:eof

[no]:sleep[/no]
[no]echo[/no] Пауза в [no]%1[/no] секунд...
title Установка паузы в [no]%1[/no] секунд...
[no]set[/no] /a "ftime[no]=%time:~6,-3%+%1[/no]"
[no]if[/no] [no]%ftime%[/no] geq 60[no] set[/no] /a ftime-[no]=[/no]60
[no]:loop[/no]
[no]set[/no] "ctime[no]=%time:~6,-3%[/no]"
[no]if[/no] /i [no]%ftime%[/no] neq [no]%ctime%[/no] goto:loop
goto:eof
Автор: king_stiven
Дата сообщения: 06.01.2008 18:25
Elroir

Да прямо из справки по set сунул, которую он невнимательно прочёл.

SymA

mp3 бинарный файл, его так разбирать не получится
Автор: SymA
Дата сообщения: 06.01.2008 18:36
king_stiven
т.е. с этими символами в БАТ вообще ни как ?
значит и в gif / jpg файлах тоже не покатят манипуляции с символами ?
Автор: king_stiven
Дата сообщения: 06.01.2008 18:48
SymA

Думаю, что нет. Порежь хотя бы rar ом mp3 кусочками по ~5 килобайт, каждый 11 убирай, склей, вот и царапины будут, пример я приводил в этой теме не так давно.

Добавлено:
Nagual

действительно, секунды точно меряет
Автор: 01MDM
Дата сообщения: 06.01.2008 19:29
Nagual
Тож, как вариант

Код:
@echo off
echo %time% start
call:pause 5
echo %time% finish
goto:eof

:pause
set /a stamp=1%time:~-5,2%+%1
set stamp=%stamp%%time:~-2,2%
:loop
set sec=1%time:~-5,2%%time:~-2,2%
if not %sec% GEQ %stamp% goto:loop
Автор: Elroir
Дата сообщения: 06.01.2008 19:29
Nagual
Единственная проблема с ожиданием с помощью цикла - это загрузка CPU.
Сравни загрузку при использовании sleep.exe или ping, с загрузкой при запуске ожидания в цикле.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.