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

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

Автор: Elroir
Дата сообщения: 28.07.2008 11:05
lamener

Цитата:
Да нормально работает

OK, тогда делаем так:

Код:
@echo off
cd /d "E:\1"
if not errorlevel 1 (
for /D %%e in (*) do (
type name.txt | find "%%~nxe">nul
if not errorlevel 1 (
move "%%e" "E:\2\%%~nxe-1"
echo %%~nxe-1>>name.txt
set /p=%%~nxe-1<nul>"E:\2\%%~nxe-1\9.txt"
) else (
move "%%e" "E:\2\%%~nxe"
echo %%~nxe>>name.txt
set /p=%%~nxe<nul>"E:\2\%%~nxe\9.txt"
)
)
)
Автор: lamener
Дата сообщения: 28.07.2008 12:19
Elroir Огромное спасибо !!
Я чуть поправил !!!

Код: @echo off
cd /d "E:\1"
if not errorlevel 1 (
:1
for /D %%e in (*) do (
type E:\2\name.txt | find "%%~nxe">nul
if not errorlevel 1 (
ren "%%e" "%%~nxe-1"
goto 1
) else (
move "%%e" "E:\2\%%~nxe"
echo %%~nxe>>E:\2\name.txt
set /p=%%~nxe<nul>"E:\2\%%~nxe\9.txt"
)
)
)
Автор: Elroir
Дата сообщения: 28.07.2008 12:38
lamener

Цитата:
Я не могу понять вот эта переменная "%%e " в цикле она стандартная ?

В цикле, в качестве переменной может быть использована любая английская буква (заглавные и прописные различаются).
Автор: lamener
Дата сообщения: 28.07.2008 13:00
Elroir


Цитата:
В цикле, в качестве переменной может быть использована любая английская буква (заглавные и прописные различаются).


т.е может использовать только одна буква "%%r", "%%k"
вот так уже нельзя "%%rt" "%%a1" ? правильно я тебя понял ?
Автор: Elroir
Дата сообщения: 28.07.2008 15:00
lamener

Цитата:
вот так уже нельзя "%%rt" "%%a1" ?

Именно так - только одна буква
Автор: Elroir
Дата сообщения: 28.07.2008 18:52
MsdLamer

Цитата:
А как можно сделать чтобы при запуске бат файла можно было вписывать дату (например: ВПИШИТЕ ДАТУ: 14.05.08) и он бы копировал файлы даты которую я написал, а сели просто нажимаешь Enter тогда копировались бы файлы текущей даты.



Код:
@echo off
set "d=%date:~0,2%"
set "m=%date:~3,2%"
set "y=%date:~6,4%"
set /p "given_date=ВПИШИТЕ ДАТУ: "
if defined given_date (
set "d=%given_date:~0,2%"
set "m=%given_date:~3,2%"
set "y=%given_date:~6,4%"
)
xcopy /d:%m%-%d%-%y% \\Post1\c$\CASH\TXT\*.txt C:\Statistic\
Автор: VitRom
Дата сообщения: 28.07.2008 20:22
Уважаемые, подскажите, как в FOR /F использовать вывод команды, которая, в свою очередь, лежит в переменной, а путь к ней содержит пробелы, да ещё UNC?

Т.е. примерно так:
Код: SET reg=%~dp0reg.exe
. . .
FOR /f "skip=4 tokens=3* delims=<tab>" %%V in ('%reg% query %RegKey% /v Path') do SET AppDir=%%V
Автор: Elroir
Дата сообщения: 28.07.2008 20:36
VitRom
Везде, где определяешь переменные, делай так:

Код:
set "var=value with spaces"
Автор: Svjt
Дата сообщения: 29.07.2008 08:17
Доброе время суток.

Уважаемые джедаи консоли, подскажите, как распаковать из консоли ZIP архив? Проблема в том, что RAR.EXE и 7z.exe не берут его, говорят, не будем мы работать с этой гадостью... А если использовать WINRAR, то он создаёт отдельный процесс, соответственно батник не ждёт, когда закончится распаковка и шурует дальше. Могно выставить чтоб батник ждал определённое время, но архивы бывают разного размера и время могно не угадать...
Автор: 01MDM
Дата сообщения: 29.07.2008 08:51
Svjt

7zip нормально извлекает: 7z e archiev.zip
Автор: claus22
Дата сообщения: 29.07.2008 12:21
подскажите плиз
нужно переименовать файлы с новым именем содержащем лишь часть из старого имени
есть файлы

080722_0124.txt
080723_0126.txt
080724_0123.txt

их нужно переименовать в ТХТ0807хх.01
написал командник

Код:
@Echo off
For %%a In (*.txt) Do Call :_Ren %%a %%~na
GoTo :EOF

:_Ren
set OldName = %2
set NewName = %OldName:~0,6%
Ren %1 ТХТ%NewName%.01
Автор: Elroir
Дата сообщения: 29.07.2008 13:14
claus22
Убери пробелы до и после "="
Автор: lamener
Дата сообщения: 29.07.2008 14:00
Всем доброго времени суток !!
Вопрос можно ли батом узнать размеры видео файла ?
к примеру некий файл с расширением .wmv у него размеры 640х480
вывести его размеры в текстовый документ
Заранее всем спасибо !
Автор: claus22
Дата сообщения: 29.07.2008 14:01
Elroir
опачки, большое спасибо, я както про синтаксис совершенно не думал

и еще вопрос: а как перевести тоже расширение txt в верхний регистр TXT?
Автор: Elroir
Дата сообщения: 29.07.2008 15:25
claus22

Цитата:
и еще вопрос: а как перевести тоже расширение txt в верхний регистр TXT?

Не понял вопрос. Что ты хочешь сделать? Приведи пример.

lamener

Цитата:
Вопрос можно ли батом узнать размеры видео файла ?

Стандартными средствами нельзя. Поищи в интернете какую-нибудь консольную утилиту, которая может выдавать информацию о мультимедия-файлах.
Автор: claus22
Дата сообщения: 29.07.2008 17:17
Elroir
например беру расширение через %%~xa там выходят прописные буквы txt а мне допустим нужно перевести их в заглавные TXT
Автор: RMR
Дата сообщения: 29.07.2008 17:47
Так и должно быть что при call "bat2.cmd" :метка %1 он не переходит к метке в bat2.cmd, а считает её за %1?
Автор: Elroir
Дата сообщения: 29.07.2008 18:08
RMR
Да.
Автор: RMR
Дата сообщения: 29.07.2008 18:18
Elroir Спасибо.
А не подскажете почему start /wait ..\prog.exe работает только если %1 не определено?
Автор: Elroir
Дата сообщения: 29.07.2008 18:18
claus22
Тогда, можно так - внутри for-а определяем переменную ext:
set "ext=%%~xa"
и вызываем вспомогательную функцию convert:
call :convert

Сама функция convert:

Код:
:convert
set "ext=%ext:a=A%"
set "ext=%ext:b=B%"
set "ext=%ext:c=C%"
set "ext=%ext:d=D%"
set "ext=%ext:e=E%"
set "ext=%ext:f=F%"
set "ext=%ext:g=G%"
set "ext=%ext:h=H%"
set "ext=%ext:i=I%"
set "ext=%ext:j=J%"
set "ext=%ext:k=K%"
set "ext=%ext:l=L%"
set "ext=%ext:m=M%"
set "ext=%ext:n=N%"
set "ext=%ext:o=O%"
set "ext=%ext:p=P%"
set "ext=%ext:q=Q%"
set "ext=%ext:r=R%"
set "ext=%ext:s=S%"
set "ext=%ext:t=T%"
set "ext=%ext:u=U%"
set "ext=%ext:v=V%"
set "ext=%ext:w=W%"
set "ext=%ext:x=X%"
set "ext=%ext:y=Y%"
set "ext=%ext:z=Z%"
Автор: RMR
Дата сообщения: 29.07.2008 19:28
Ну например есть программа prog.exe, которая на директорию выше батника bat.cmd.
Содержимое bat.cmd: start /wait ..\prog.exe
Если запускать bat.cmd без параметров то все нормально, а если с параметром то ошибка.

Добавлено:
Вообщем я понял. Такое случается только если drag 'n drop юзать.
Автор: lamener
Дата сообщения: 30.07.2008 09:10

Цитата:

Вопрос:
можно ли батом узнать размеры видео файла ?
Ответ:
Стандартными средствами нельзя. Поищи в интернете какую-нибудь консольную утилиту, которая может выдавать информацию о мультимедия-файлах.

Может кто подскажет перерыл весь яндех и гугл ни чего нет !
Автор: igor_andreev
Дата сообщения: 30.07.2008 09:22
lamener
http://mediainfo.sourceforge.net/ru/Download
Автор: MsdLamer
Дата сообщения: 31.07.2008 09:00

Цитата:
MsdLamer

Цитата:А как можно сделать чтобы при запуске бат файла можно было вписывать дату (например: ВПИШИТЕ ДАТУ: 14.05.08) и он бы копировал файлы даты которую я написал, а сели просто нажимаешь Enter тогда копировались бы файлы текущей даты.




Код:
@echo off
set "d=%date:~0,2%"
set "m=%date:~3,2%"
set "y=%date:~6,4%"
set /p "given_date=ВПИШИТЕ ДАТУ: "
if defined given_date (
set "d=%given_date:~0,2%"
set "m=%given_date:~3,2%"
set "y=%given_date:~6,4%"
)
xcopy /d:%m%-%d%-%y% \\Post1\c$\CASH\TXT\*.txt C:\Statistic\


он начинает копировать все файлы начиная с той даты и все файлы которые идут после этой даты которой я укажу, а мне нужно чтобы копировались файлы той даты которой я укажу. Подскажите. Спасибо.
Автор: lamener
Дата сообщения: 31.07.2008 13:44
Вопрос ! Нужно разделить одну переменную на вторую и присвоить результат третьей !!
с=а/б
Автор: Elroir
Дата сообщения: 31.07.2008 18:04
lamener

Код:
set a=6
set b=2
set /a c=a/b
Автор: Nagual
Дата сообщения: 31.07.2008 22:37
такая задача

set q1=1
set q2=10
set q3=100

значения переменных — произвольные числа

то есть возможет вариант

set q1=1
set q2=100
set q3=10

set q1=100
set q2=1
set q3=10
...
и т.д.

надо определить большую из переменных
Автор: Elroir
Дата сообщения: 31.07.2008 22:54
Nagual

Код:
@echo off
setlocal
set "greater=q1"
set "tmp_var=%q1%"
if %q2% GTR %tmp_var% (set "greater=q2" & set "tmp_var=%q2%")
if %q3% GTR %tmp_var% (set "greater=q3")
echo greatest var = %greater%
Автор: Nagual
Дата сообщения: 31.07.2008 23:42
Elroir
спасибо, работает

Добавлено:
только после = всё-таки должны быть %%
Автор: Elroir
Дата сообщения: 31.07.2008 23:51
Nagual

Цитата:
только после = всё-таки должны быть %%

Где именно?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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