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

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

Автор: KapralBel
Дата сообщения: 26.09.2006 14:06
AY51
start notepad 1.txt
Автор: AY51
Дата сообщения: 26.09.2006 15:21
Спасибо! Помогло-полегчало.
Автор: ViSiToR
Дата сообщения: 27.09.2006 04:37
Такая задача:

Нужно узнать общий размер (в байтах) всех файлов с расширением *.adr (в одном определённом каталоге), и выйти из батника с кодом ровняющимуся результату.
Возможно такое на батнике?
Автор: DiZka
Дата сообщения: 27.09.2006 08:30
не знаю зада ето для батника или может прогу целую пистаь надо но задача такова... есть папка в которое подпапки и т.д. конечный уровень может быть любым... т.е.
|
|
|\_папка
|
|\_папка
| |
| \_папка
| |
| \папка
| \.....
\_папка
...............
ну я думаю поняли в папках лежат файлы разные по расширениям


Задача: выташить все файлы из папок и подпапок с расширением jpg на самый верх ну или в указаную папку... ну еще если возможно но НЕ обязательно если имя файла совпадает переименовывать в другой ну или добавлять символ какойнить чтоб не заменялись файлы вообщем....

Если не в тему написал сори а совсем забыл, эти папки и подпапки ето кэш вообщем инетовский... ето чтоб понятнее было
Автор: DocBeen
Дата сообщения: 27.09.2006 10:59
Многоуважаемые форумчане! подскажите как все таки правельно в батнике использовать функцию rasdial....
имею подключение с интернетом по VPN и необходимо чтоб при старте системы выполнялось подключение к интенет...
Автор: KapralBel
Дата сообщения: 27.09.2006 11:09
DiZka

Код:
@Echo Off
For /R "D:\Папка с картинками" %%a in (*.jpg) Do Copy %%a "D:\Папка с картинками\"
Автор: ViSiToR
Дата сообщения: 27.09.2006 11:13
DiZka



Код:
set folder=путь к каталогу для помещения файлов
dir /b /a-d /s *.jpg > %temp%\filelist.tmp
if not exist %folder% mkdir %folder%
For /f "delims=" %%i in (%temp%\filelist.tmp) do xcopy /y /c /h /r "%%i" "%folder%"
del /f /q %temp%\filelist.tmp
Автор: KapralBel
Дата сообщения: 27.09.2006 11:26
ViSiToR

Код: @Echo Off
Set Size=0
For /R "C:\Program Files\far\" %%a in (*.txt) Do Call :Label1 %%~za
Echo size=%Size%
GoTo :EOF

:Label1
Set /A Size=%Size%+%1
GoTo :EOF
Автор: DiZka
Дата сообщения: 27.09.2006 12:11
Всем спасибо все работает
Автор: ERG73
Дата сообщения: 27.09.2006 14:16
Подскажите
Нужно создать файл dNNN.arj
где NNN - трехзначное число, которое обозначает порядковый номер текущего дня (или другими словами, сколько дней прошло с нового года по сегодняшнюю дату)
Как высчитать это число?
Автор: olegupb
Дата сообщения: 27.09.2006 14:23
Народ, что нужно прописать в батниках загрузочной дискеты win98 чтоб автоматом был найден cd-rom и запущен файл с компакта?
Автор: Refugee
Дата сообщения: 27.09.2006 14:27
ERG73
day.js:
d = new Date();
WScript.Echo(Math.floor((d.getTime()-new Date( d.getYear(),0,1 ).getTime()) /(1000*3600*24))+1);

сам батник
for /f "tokens=*" %%s in ('cscript //nologo day.js') do arj a %%s *.*
Автор: DiZka
Дата сообщения: 27.09.2006 18:36
ViSiToR еще вопросик по дороботки твоего "скрипта" как бы сделать чтоб заместо set folder=путь к каталогу для помещения файлов скрипт сам определял папку и создавал... в директории куда поместил его т.е.

|
|
\_папка (из нее надо скопировать)
|
\out (скрипт сам создает папку и копирует в нее картинки)
Автор: millenium
Дата сообщения: 27.09.2006 21:26

Цитата:
Народ, что нужно прописать в батниках загрузочной дискеты win98 чтоб автоматом был найден cd-rom и запущен файл с компакта?

Присоединяюсь к просьбе.
И еще. Как мне скопировать файл с CDROM из под ДОСа, допустим на рамдрайв, если буква диска присваеваемая CDROMу на разных компьютерах бывает разная и если CDROMов не 1, а 2?
Пробовал так:
copy %CDROM%:\test.exe %RAMD%:\ > NUL
и еще так:
path=%CDROM%:\;%RAMD%:\
copy test.exe %RAMD%:\ >NUL
В обоих случаях пишет, типа файл :\test.exe не найден!
Помогите пожалуйста, очень нужно!
Автор: ViSiToR
Дата сообщения: 27.09.2006 21:29
KapralBel
Спасибо!

DiZka

Цитата:
как бы сделать чтоб заместо set folder=путь к каталогу для помещения файлов скрипт сам определял папку и создавал

Я не уверен что правильно понимаю - Ты хочешь чтобы скрипт создавал папку, с тем же именем как и у папки с которой он копирует файлы, или ты хочешь чтобы в текущей папке скрипта создавалась папка с определённым названием, и в неё помещались картинки?
В том примере который я привёл, не обязательно писать полный пуить, можно после set folder= прописать просто имя папки, и тогда эта папка создастся прямо возле батника.
В любом случае, то что будет прописанно после set folder=, автоматом будет создано как имя папки, если задать ещё и путь, то по этому пути и будт создана папка.
Автор: DiZka
Дата сообщения: 27.09.2006 22:49
ViSiToR Все пасип все уже есть как я хочу нуден был как раз вариант:

"В том примере который я привёл, не обязательно писать полный пуить, можно после set folder= прописать просто имя папки, и тогда эта папка создастся прямо возле батника."
Автор: Kirillhome
Дата сообщения: 28.09.2006 00:16
millenium
Ну, если имя файла уникально - довольно просто.... Если нет.... Тогда могут быть проблемы...

В общем, если совсем в лоб (при условии чистого DOS-а):


Код:
@echo off
SET F_NAME=test1.exe
SET FLAG_N=0
SET CD_ROM=D
call :_PROV %CD_ROM% %F_NAME% %FLAG_N%
SET CD_ROM=E
call :_PROV %CD_ROM% %F_NAME% %FLAG_N%
SET CD_ROM=F
call :_PROV %CD_ROM% %F_NAME% %FLAG_N%
SET CD_ROM=G
call :_PROV %CD_ROM% %F_NAME% %FLAG_N%

rem Батник надо продолжить от H до Y

SET CD_ROM=Z
call :_PROV %CD_ROM% %F_NAME% %FLAG_N%

:_ZAVERSH
IF "%FLAG_N%"=="0" GOTO :_NO_FILE
IF "%FLAG_N%"=="2" GOTO :_2_FILE
echo Файл найден на диске %CD_ROM_N%
GOTO :_END
:_2_FILE
echo Файл найден, но на нескольких дисках...
echo Надо что-то делать...
GOTO :_END
:_NO_FILE
echo Файл нигде не найден...
:_END
GOTO :EOF

:_PROV
dir %1%:> NUL 2>NUL
IF "%errorlevel%" == "0" (
if exist %1%:\%2% (
SET CD_ROM_N=%1%:
if "%3%"=="0" (SET FLAG_N=1) else (SET FLAG_N=2)))

GOTO :EOF
Автор: Jagstang
Дата сообщения: 28.09.2006 10:55
Все-таки хочу еще раз задать вопрос: как перенаправить вывод из консоли в переменную?
Такой пример должен работать, но не работает как ожидается: echo value | set var /p=. После выполнения хотелось бы в переменной var видеть значение value. Можно конечно все перегнать в файл, затем использовать for - имхо не эффективно...
Автор: KapralBel
Дата сообщения: 28.09.2006 11:59
Jagstang
Зато работает

Код: echo value >1
set /p var=<1
Автор: topic
Дата сообщения: 28.09.2006 17:37
Вопрос как скопировать файл между машинами разных доменов.

Типа

COPY \\10.16.29.37\document\1*.TXT \\10.11.29.4\IN\

Поблемма в том что когда это в ТОтале делаю, то отвечаю нвопросы типа Имя и парольи тогда могу копировать, а можно ли их указать в строке и делать это батником?

Автор: Refugee
Дата сообщения: 28.09.2006 22:17
Jagstang
for /f "tokens=*" %%i in ('echo value') do set T=%%i
трубу можно использовать использовать только между процессами, а set - встроенная команда.
topic
net use /?
Автор: Kirillhome
Дата сообщения: 28.09.2006 22:58
ViSiToR

Цитата:
Такая задача:

Нужно узнать общий размер (в байтах) всех файлов с расширением *.adr (в одном определённом каталоге), и выйти из батника с кодом ровняющимуся результату.
Возможно такое на батнике?

Решение от KapralBel

Цитата:

Код: @Echo Off
Set Size=0
For /R "C:\Program Files\far\" %%a in (*.txt) Do Call :Label1 %%~za
Echo size=%Size%
GoTo :EOF

:Label1
Set /A Size=%Size%+%1
GoTo :EOF
Автор: Korshikov_Andrey
Дата сообщения: 29.09.2006 05:42
Для некоторой папки необходимо раздать следующие разрешения:

Обзор папок / Выполнение файлов (Traverse Folder / Execute File)
Содержание папки / Чтение данных (List Folder / Read Data)
Чтение атрибутов (Read Attributes)
Чтение дополнительных атрибутов (Read Extended Attributes)
Создание файлов / Запись данных (Create Files / Write Data)
Создание папок / Дозапись данных (Create Folders / Append Data)
Запись атрибутов (Write Attributes)
Запись дополнительных атрибутов (Write Extended Attributes)
Удаление подпапок и файлов (Delete Subfolders and Files)
Чтение разрешений (Read Permissions)

(короче говоря, это то, что называется "Изменить", но без "Удаления", зато с "Удалением подпапок и файлов).

Разрешения эти нужно применять "Только для подпапок и файлов" и, кроме того, "Заменить разрешения всех дочерних объектов...".

Можно ли раздавать такие хитрые права через батник? Что использовать? Курил хелп на xcacls - не понял, как заставить его раздавать право "Удаление подпапок и файлов" и область действия "(OI)(CI)(IO)".

Может быть можно это сделать с помощью WSH? Какими классами и методами пользоваться?
Автор: GRiMka
Дата сообщения: 29.09.2006 06:16
Помогите написать бат, который бы открывал определенный текстовый файл и удалял строки с ключем "FW: DROP:" а остальные не трогал (в строке присутствуют и знаки табуляции и пробелы, заканчивается строка всегда энтером)
Полученный файл сохранял бы под другим именем..

Заранее благодарен автору ответа!
Автор: KapralBel
Дата сообщения: 29.09.2006 09:57
Kirillhome
Если тебе нужен подсчет только в папке (исключая подпапки) - то команда for
FOR %%a in (*.txt) ...

GRiMka
find /i /v "FW: DROP:" File_In.txt >File_Out.txt
Автор: ViSiToR
Дата сообщения: 29.09.2006 18:16
Немогу понять, в чём проблема...

Мне нужно переименновать все файлы с расширением, допустим *.txt, в точно такие-же имена, но до расширения добавить приставку _1 к каждому файлу, пробую так:


Код: for %%a in (*.txt) do ren *.txt *_1%%~xa
Автор: evle
Дата сообщения: 29.09.2006 18:43
ViSiToR

Цитата:
for %%a in (*.txt) do ren *.txt *_1%%~xa

на каждом шаге переименовывать все файлы? Оригинально.
Тогда уж что-то типа

Код: for %%a in (*.txt) do ren %%a %%~na_1%%~xa
Автор: Shish_kebab
Дата сообщения: 29.09.2006 19:25
Опять я. Как то я просил создать батник для выборки и копирования из кучи файлов одного с сегодняшней датой. Мне помогли сенкс.
вот
Но вот возникла проблема на винде 2000 проф.
там set T_Date=%DATE% получается в формате = день недели дата (пт 29.09.2006), незнаю как исправить
Автор: Kirillhome
Дата сообщения: 29.09.2006 19:45
Shish_kebab

вообще, смотрим SET /?

в частности, для WIn2000


Код:
@Echo Off
Set PATH_POISK="D:\Temp\tekst3\"

set T_Date1=%DATE%
set T_Date=%T_Date1:3,10%

rem Для поиска в каталоге, указанном в PATH_POISK
rem и во всех его подкаталогах - FOR /R
FOR /R %PATH_POISK% %%a IN (*.*) DO @Call :MY_DEL "%%a" %%~ta

rem Для поиска в каталоге, указанном в PATH_POISK
rem НЕ ищя в его подкаталогах - FOR
rem FOR %%a IN (%PATH_POISK%\*.*) DO @Call :MY_DEL "%%a" %%~ta
GoTo :EOF

:MY_DEL
SET F_DATE=%2
if %F_DATE%==%T_Date% (copy %1 c:\)

GoTo :EOF
Автор: ViSiToR
Дата сообщения: 29.09.2006 20:18
evle

Цитата:
Тогда уж что-то типа

То что нужно было! спасибо.




А можно ли улучшить этот пример так, чтобы если такие же файлы уже существуют, то чтобы вместо _1 прописывалось _2 и т.д?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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