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

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

Автор: vlasenkoa
Дата сообщения: 13.12.2007 14:09
to Ilyansk
Спасибо за помощь!
Выдает ошибку: Ошибка при открытии локального файла d:\antivirus
> d:\antivirus : Отказано в разрешении
права на папку стоят на полный доступ, - захожу под админом!
В чем может быть проблема?
Автор: Booklet
Дата сообщения: 13.12.2007 15:42
принудительно запускать от имени админа пробовал?
Автор: AlexLev59
Дата сообщения: 13.12.2007 16:10
Подскажите пожалуйста, как написать команду FOR, чтобы командный файл прочитал из текстового файла список папок (каждая папка на отдельной строке, имена папок имеют пробелы), - требуется для автоматического создания каталогов.
Спасибо.
Автор: Elroir
Дата сообщения: 13.12.2007 16:48
AlexLev59

Код:
for /f "tokens=*" %%a in (folders.txt) do md "%%a"
Автор: KlimKlim
Дата сообщения: 13.12.2007 17:01
прочитал 2 первых части данного топика... набрался ума-разума.. но так и не осилил следующую задачу:
Есть папка на сетевом диске M:\Dir\Dir1\ , в которой лежит пачка dll-ек и exe-шников, которые периодически обновляются.
Есть папка на локальном диске C:\Rid\ap32\ с такой же пачкой dll-ek и exe-шников, в котору надо копировать только обновлённые файлы из M:\Dir\Dir1\.

Файлов реально много, в целях снижения нагрузки на сеть надо копировать только те файлы, дата которых отличается... Поможите, пожалуйста
Автор: 01MDM
Дата сообщения: 13.12.2007 17:46
KlimKlim
xcopy /?
Автор: Elisaveta
Дата сообщения: 13.12.2007 18:46
Ещё одна задачка:
Скопировать файл и подкаталоги,в имени которых не содержится буквы "r" с диска С: в каталог ROB этого ж диска.
Автор: king_stiven
Дата сообщения: 13.12.2007 19:18
Elisaveta
а каталог ROB уже существует?
Автор: Elisaveta
Дата сообщения: 13.12.2007 20:46
Ой,сори!Нет,надо создать!
Автор: 01MDM
Дата сообщения: 13.12.2007 21:12
Elisaveta
Если в имени папок будут "r", то все содержимое скопировано не будут, например "Program Files".

Код:
@echo off
setlocal enabledelayedexpansion
md C:\ROB
for /f "tokens=*" %%i in ('dir /b /s /ad C:\ ^| findstr /i /v "r"') do (
set "mdpath=%%i"
md "C:\ROB\!mdpath:~3!"
call:_copy "%%i\" "C:\ROB\!mdpath:~3!\"
)
goto:eof
:_copy
pushd %1
for /f "tokens=*" %%i in ('dir /b /a-d ^| findstr /i /v "r"') do (
copy "%%~dpnxi" %2
)
popd
Автор: king_stiven
Дата сообщения: 13.12.2007 21:48
Elisaveta

а например каталог
C:\katalog\katalog roma\ тоже не надо копировать?

а файл
C:\katalog\remix ?

лучше привести пример путей файлов и каталогов, которых не надо копировать
Автор: Ilyansk
Дата сообщения: 14.12.2007 05:54
Извините, vlasenkoa, не запускал я
хм...
а батник запускается планировщиком по расписанию?
а-а-а-а, вот в чем дело... надо было HELP повнимательней почитать мне...
вобщем, команда get скачивает указанный файл в текущую директорию и если указано имя, то присваивает это имя скачиваемому файлу. Т.к. папка D:\Antivirus уже есть он и не смог переименовать скачиваемый cureit.exе в d:\antivirus. Исходя из этого надо поправить ftp.cms
Код: get pub/drweb/cureit/cureit.exe d:\antivirus\cureit.exe
quit
Автор: KlimKlim
Дата сообщения: 14.12.2007 08:02

Цитата:
KlimKlim
xcopy /?


xcopy /D
спасибо!
Автор: vlasenkoa
Дата сообщения: 14.12.2007 10:07
to Ilyansk
чето у меня не идет!
Связь с rr.drweb.com.
220 Welcome to Dr.Web FTP service.
331 Please specify the password.
230 Login successful.
Установлено анонимное соединение для Андрюха
ftp> get pub/drweb/cureit/cureit.exe d:\antivirus\cureit.exe
500 Illegal PORT command.

Выхожу с клиентской машины через NAT может в этом проблема!
Автор: 01MDM
Дата сообщения: 14.12.2007 12:02
vlasenkoa

Код:
@echo off
echo get pub/drweb/cureit/cureit.exe d:\antivirus\cureit.exe >ftp.cnf
echo bye >>ftp.cnf
ftp -s:ftp.cnf -A ftp.drweb.com
del /a ftp.cnf
Автор: nikrons
Дата сообщения: 14.12.2007 12:49
Ребятишки, помогите со следующей задачей.
Ищу в папке файлы с первой буквой в имени a, b, c ... z и возвращаю свободную букву:

SET FirstLetter=A
if exist S:\311P\%FirstLetter%*.arj goto :letterb
goto :setletter

:letterb
SET FirstLetter=B
if exist S:\311P\%FirstLetter%*.arj goto :letterc
goto :setletter
...
:letterz
SET FirstLetter=Z
if exist S:\311P\%FirstLetter%*.arj goto :error
goto :setletter

:error
...
:setletter
...

Можно ли как-то красивей в одном цикле сделать, чтобы не было 26 сравнений (a-z) ?
Автор: vlasenkoa
Дата сообщения: 14.12.2007 13:09
to 01MDM
Спасибо! Но у меня не проходит!
Связь с rr.drweb.com.
220 Welcome to Dr.Web FTP service.
331 Please specify the password.
230 Login successful.
Установлено анонимное соединение для Андрюха
ftp> get pub/drweb/cureit/cureit.exe d:\antivirus\cureit.exe
500 Illegal PORT command.
425 Use PORT or PASV first.
ftp> bye
Автор: Elroir
Дата сообщения: 14.12.2007 13:17
nikrons

Код:
@echo off
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if not exist S:\311P\%%a*.arj (
set "FirstLetter=%%a"
goto setletter
)
)
:error
...
:setletter
...
Автор: nikrons
Дата сообщения: 14.12.2007 13:34
Спасибо.
Автор: cluster
Дата сообщения: 14.12.2007 15:58
никто не знает, как cmd-файл в кодировке win-1251 выполнять в dos-866?
просто есть vbs-скрипт, кторый создаёт искомый cmd-файл. а как создавать его сразу в dos-кодировке, я не в курсе.
посоветовали запускать "cscript //nologo scriptname.vbs > userslist.cmd", но это н очень удобно. да и CHCP 866 > null не помогает.
Автор: 01MDM
Дата сообщения: 14.12.2007 17:07
cluster
Либо запускать

Код:
chcp 1251>nul & userlist.cmd
Автор: slech
Дата сообщения: 15.12.2007 10:17
всем привет.
хочу соорудить батник для синхронизации 2-ух папок.
есть папка 1 тут и папка 1 там. ночью происходит копирование, но почти всегда не совсем удачно. поэтому нужно проверить всёё ли хорошо скопировалось. часто создаётся фал но с нулевым размером. приходится искать его и копировть вручную.

1. нужна утилитка которая будет ждать ввода № папки, так как в каждый день она новая.
2. нужна умная утилитка для копирования, copy точно не подойдёт. что бы ещё могла мне показать какие файлы различаются и что бы конечно копировала их. т.е. как бы отчёт что сделала.
3. отправить уведомление можно blat или smpsend.

можете посоветовать п1 и п2.

спасибо.
Автор: Elroir
Дата сообщения: 15.12.2007 12:41
slech
1. Команда set /p "folder=Enter folder name : ", будет ожидать ввода названия директории и запишет введенное название в переменную "folder".
2. Насколько я понял, надо пройтись по всем файлам в директории 1 и проверить есть ли такой файл в директории 2 и, если есть, сравнить их размеры? Если файла нет или размеры не совпадают, надо скопировать этот файл в директорию 2 и выдать отчет?
Автор: Lutvun
Дата сообщения: 15.12.2007 13:27
Нужен батник который ищет на заданом диске файлы из списка и все файлы которые находит копирует в папку откуда был запущен при этом исключяя из поиска папки имена которых содержат наборы букв из списка. Например при поиске по диску С нужно исключить папку виндовс и темп и их подпапки.
Автор: dimalogin
Дата сообщения: 15.12.2007 13:32
Здраствуйте, как присвоить переменной определенной в batch файле (пакетном файле) содержимое файла?
например, чтобы записать в файл значение переменной:
echo %variable% > C:\test.txt
А как мне теперь это значение получить обратно?
Автор: Elroir
Дата сообщения: 15.12.2007 13:56
dimalogin
В теме , которую ты создал, тебе правильно ответили:

Код:
set /p variable=<c:\test.txt
Автор: dimalogin
Дата сообщения: 15.12.2007 18:27
понятно..
Автор: king_stiven
Дата сообщения: 15.12.2007 19:49
Lutvun
Не поленись, выложи свой вариант, у тебя ведь уже кое что получалось раньше, а там поправим.
Автор: boypenza
Дата сообщения: 16.12.2007 11:41
Уважаемые форумчане!!! Помогите разобраться с задачкой:

"Используя конвейер и утилиты FINDSTR и SORT, обработать вывод команды DIR (без параметров) таким образом, чтобы результат содержал только записи, относящиеся к файлам, и был отсортирован в порядке возрастания времени (но не даты!) их создания."

попробовал реализовать это как
dir | findstr /s [*.*] | sort /+13

но при этом выдаются и каталоги. как осуществить вывод только файлов???

Заранее благодарен за ответ.
Автор: BasiL
Дата сообщения: 16.12.2007 12:27
boypenza

Цитата:
попробовал реализовать это как

можно и без findstr

Код: dir /a:-d /o:-d /t:c | sort /+10

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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