![]() |
BAT File для переименования файлов
Есть 250 файлов , надо файлик bat чтоб переименовал окончания Jpg в rar
:):xex:
|
Если интересует только конкретный случай то просто:
ren *.jpg *.rar Если все же интересно как по другому: for %f in (*.jpg) do ren %f *.rar (если вызывать НЕ из батника, а из коммандной строки то надо писать %%f) P.S. Нет, наоборот. %%f это когда из батника. |
to Denver
а где можно достать систакс всех команд Batch??? Или хотябы подробное описание части из них??? |
Isalex
Если у тебя ХР то найди на диске с виндой файл ntcmds.chm там все в принципе + расширенные комманды для ХР (могу его русский тебе заслать если надо). А вообще все эти комманды тянутся еще из MS DOS и таких книжек в инете уже практически нет. Вот здесь нашел далеко не полный список комманд. А вообще описание любой комманды можно посмотреть в коммандной строке запустив: комманда /? |
Спасибо, но меня в принципе интересуют не столько сами команды, сколько обозначеня переменных и разных ключей, как например - %f , %1 , %PATH%.
В принципе, все на интуйтивном уровне понимается, но хотельсь бы иметь более подробное описание этих вещей. |
Isalex
К сожалению литературы конкретно по переменным среды имхо нигде нет. Кроме как в мануалах по всем коммандам. Потому что имхо это можно описать всего на двух страницах если уже совсем подробно расжевывать. Вкратце: %1, %2, ... это переменные содержащие параметры запуска батника (параметры следуют в коммандной строке за батником, разделяются пробелами и могут быть чем угодно, числом, именем файла и т.д.) %temp%, %windir% ... - переменные среды которые задаются в autoexec.bat (или еще где) коммандой set %windir%="c:\windwos\" %f, %b, %a - все остальные неиспользуемые "регистры" используются в бат файлах или просто из коммандной строки с коммандой for errorlevel - обычно программы (либо батники если в них есть комманды set errorlevel=0) возвращают 0 в случае удачного завершения и другое число если нет. Для проверки короче, например: scandisk c: /f if errorlevel==1 goto error scandisk d:/f if errorlevel==1 goto error goto exit :error echo Произошла ошибка, fuck off :exit |
Тока Windows XP команду move не поддерживает. Я из-за этой бодяги часа 4 один раз потерял...
|
vadian
У кого не поддерживает, а у кого и поддерживает (если hands.dll настроить) :) |
Da. Glawnoe ubrat iz sistemi draiwer krivie_ruchki.sys ;-))).
|
Цитата:
for %f in (*.jpg) do ren "%f" *.rar (кавычки добавлены для того, чтобы обрабатывались файлы, имена которых содержат пробелы) Цитата:
for %%f in (*.jpg) do ren "%%f" *.rar А если надо не переименовать все jpg в rar, а сжать каждый jpg в свой rar (что логичнее), то команда принимает вид: for %%f in (*.jpg) do rar a "%%f.rar" "%%f" |
Великий скрипт великого Ларри Волла (Larry Wall).
Код:
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' |
Есть проблема, надо переехать с 98 на w2k. bat'ники на w2k не пашут
,говорят шо надо файлы cmd использовать, Подскажите де про них почитать плз. :confused: |
i1doc
батники работают под любой виндой, а cmd это тот-же bat только с другим расширением. |
Кстати, для тех, кто не знает. И в Win2k, и в WinXP есть команда "help".
А если нужен help по конкретной команде, например, "set", то нужно вызвать "help set". Ну оччень подробно все расписано. А в русской винде даже по-русски. :beer: |
А кто подскажет, какая прога выполняет файлы cmd. (если данный вопрос коректен)
|
i1doc Есть в windows такая: cmd.exe
|
Вопрос по комманду exist
Шото не работает команда exist (проверяет наличие файлов) в w2k :confused: , шо делать не пойму ???, сам батник 100% рабочий (под 98 виндой правда)
|
i1doc
exist это не комманда, а параметр команды if, набери if /? там все написано. Или приведи сюда то что там написано если нет exist. |
спасибо шо обяснили убогому :)
строка такая
if exist E:\путь\*.* h:\папка\програмка.exe весь фикус в том что по барабану, есть файлы, или нет - програмка запускается :( ------------------------------- В прцессе разборов выяснилось то если вместо E:\путь\*.* прописать E:\путь\*.txt- то все работает :confused: вариант E:\путь\*.??? - тож не работает, как же маску задать млин - файлы то все нужно ловить. |
i1doc
Приведи строку точнее, что вызываешь. Только не по памяти, а именно то что не работает. Мало ли. Если это в батнике то строку из батника плиз, лучше весь. ------------------------------------------------- Ха! Догнал. Под *.* попадают также каталоги, включая . и .. (т.е. текущий каталог и родительский). Ну вобщем if exist *.* сработает даже в пустом каталоге. Как решить ща подумаю... ------------------------------------------------- Хм.. может и не самое лакоичное решение но работает (во всяком случае это уже во всех версиях винды должно). Пример батника: Код:
@echo off |
denver
Батник делался давно и никто не помнит кем ... :) смысл его, облегчить нам работу. Батник шарится по папкам и проверяет наличие там файлов,файлы там бывают самые разные и шо сними делать приходиться думать и потом раскладывать руками....
... if exist h:\mailbox\q901\*.* h:\tm-bat\Mess "есть почта в ящике 1" if exist h:\mailbox\q917\*.* h:\tm-bat\Mess "есть почта в ящике 2" if exist h:\mailbox\q903\*.* h:\tm-bat\Mess "есть почта в ящике 3" if exist h:\mailbox\q904\*.* h:\tm-bat\Mess "есть почта в ящике 4" ... всего там порядка 200 проверок папок... з.ы. Mess - ето маленикий екзешник, который параметр в кавычках вываливает на экран(типа месачбокса) |
Сделай так:
файл folders.dat Код:
h:\mailbox\q901|h:\tm-bat\Mess "есть почта в ящике 1" Код:
@for /f "tokens=1* delims=|" %%i in (folders.dat) do @call verify.cmd %%i "%%j" Код:
@echo off |
Спасибо огромное камрады-форумчане, не бросили в беде :beer: все заработало.
... тут начал развивать свой командный файл и возникла мысль месаги которые создаются при выполнении файла закатывать в файл текстовый, смутно помню шо можно ето сделать сомандой "copy" но никак не не получается... :idontnow: подскажите плз |
i1doc
"команда" "параметры" > "имя_файла" - результат выполнения команды заносится в файл (если нет - создается, если есть - очищается) "команда" "параметры" >> "имя_файла" - результат добавляется к концу существующего файла (если файла нет - создается) например: echo 1st line > result.txt echo 2nd line >> result.txt |
Ничего, если в этой теме спрошу, чтоб ради простого вопроса новую не создавать? Как из батника написать "!"(восклицательный знак), если использую enabledelayedexpansion? Битый час бьюсь с семиколонами-кавычками-процентами
@ECHO OFF & SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION ECHO OOOPS !!!>TEST.TXT ENDLOCAL Вызвать другой батник и им записать, сделать endlocal и записать "!", потом опять включить enabledelayedexpansion - это все понятно, но может есть обычная простая метода, а я ее просто не знаю? |
Можно переменную создать до включения ENABLEDELAYEDEXPANSION:
Код:
@set my=! |
Часовой пояс GMT +4, время: 13:05. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.