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

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

Автор: alexvsm
Дата сообщения: 02.04.2008 13:42
dredd00
Имелось ввиду Полезные утилиты в шапке данной темы
а там уже Win2000(3) Resource Kit Tools
Автор: moloch
Дата сообщения: 02.04.2008 14:42
Может есть укого-нибудь идеи по поводу того как отконвертировать сегодняшнюю дату в название дня недели. По типу: Mon, Tue и т.д.
Автор: Elroir
Дата сообщения: 02.04.2008 15:16
moloch
Один из вариантов:

Код:
@echo off
setlocal
echo wscript.echo WeekDayName^(WeekDay^(date^)^)>tmp.vbs
for /f %%a in ('cscript tmp.vbs //Nologo') do set "day=%%a"
del /q tmp.vbs
echo %day:~0,3%
Автор: AleXPwin
Дата сообщения: 02.04.2008 22:11
Проветствую всех!

Подскажите пожалуйста, как реализовать автоматическую подстановку цифер в следующей команде с 2 по 94 в оба параметра:
HTMLtoTXT.exe "G:\AleXP\progs\Inet\Portable Offline Browser\Download\www.proxycn.net\proxy1000\page3.htm" "G:\AleXP\Proxy\ProxyList\200804\ProxyCN3.txt"

С уважением,
Автор: igor_andreev
Дата сообщения: 02.04.2008 22:33
AleXPwin

Код:
for /l %a in (2,1,94) do HTMLtoTXT.exe "G:\AleXP\progs\Inet\Portable Offline Browser\Download\www.proxycn.net\proxy1000\page%a.htm" "G:\AleXP\Proxy\ProxyList\200804\ProxyCN%a.txt"
Автор: AleXPwin
Дата сообщения: 02.04.2008 22:59
igor_andreev

Цитата:
Это если запускать из комстроки. Из батника - знаки % удвоить %%.

Огромная благодарность! Батники - это сила! Низкий поклон.

С уважением,

Добавлено:
Если возможно еще вопрос: Как сложить полученные тхт последовательно в один файл
Автор: igor_andreev
Дата сообщения: 02.04.2008 23:38
AleXPwin

Цитата:
Как сложить полученные тхт последовательно в один файл

Если очередность склеивания файлов не важна, то можно даже так собрать все файлы в папке:

Код:
copy /b *.txt all.xxx
ren all.xxx all.txt
Автор: AleXPwin
Дата сообщения: 02.04.2008 23:43
igor_andreev

Цитата:
Если очередность склеивания файлов не важна, то можно даже так собрать все файлы в папке:

Код:
copy /b *.txt all.xxx
ren all.xxx all.txt

Расширение xxx - чтобы он сам в себя не копировался.
Если нужно, чтобы по порядку копировались, то:

Код:
echo.>all.txt
for /l %%a in (2,1,94) do copy /b "all.txt"+"ProxyCN%%a.txt" "all.txt"


Еще раз благодарю. Несколько часов работы вручную (не единоразово), превратились в несколько минут отдыха! Низкий поклон!
Автор: sipok
Дата сообщения: 03.04.2008 15:41
slayer120

@echo off
for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (
if not %%i gtr 5 if not %%i equ 0 (

NET USE Z: \\server1\folder --- если вместо вот этого пишем
xcopy /i /Y f:\folder\*.txt "Z:\subfolder\%%i\" ---
NET USE Z: /delete ---

)
)

пишем вот это:
xcopy /i /Y f:\folder\*.txt \\server1\folder\subfolder\%%i\
кавычки не помогают
он все равно выдает:
File creation error - The filename, directory name, or volume label syntax is in
correct.

Unable to create directory - \\server1\folder\subfolder\4
0 File(s) copied

PLEASE HELP ((((((
Автор: igor_andreev
Дата сообщения: 03.04.2008 15:47
sipok
Иногда вместо NET USE удобнее использовать PUSHD\POPD. Букву диска (Z) просто не указывай в этом случае, PUSHD их от балды присваивает. Ну в смысле не от балды, а первую попавшуюся свободную букву с конца алфавита
Автор: sipok
Дата сообщения: 03.04.2008 16:09
igor_andreev

Спасибо, но сейчас проблема, не в подключении к другому серверу, а в ошибке при копировании

File creation error - The filename, directory name, or volume label syntax is in
correct.

Unable to create directory - \\server1\folder\subfolder\4
0 File(s) copied
Автор: Joolz
Дата сообщения: 03.04.2008 16:55
Ктонибудь может объяснить, почему в cmd-файле конструкция вида

Код: If %ERRORLEVEL%==0 (
Автор: Elroir
Дата сообщения: 03.04.2008 18:12
Joolz
В cmd-файле работают обе конструкции. Проблема, видимо, в твоем конкретном батнике. Приведи весь код.
Автор: 914EREP
Дата сообщения: 03.04.2008 18:43
Здравствуйте!
Необходима помощь специалиста. Проблема в следующем:
Необходимо разработать командный файл, который формировал бы ежемесячный отчет об изменениях в рабочем каталоге (файлы созданные, удаленные).
Я сказал преподу, что реализация данного командного файла с помощью командного языка MS-DOS не представляется возможным.
Он мне пояснил, что с использованием чисто командного языка DOS его реализовать не возможно, но с использованием командного языка уже реализованного в Windows на платформе NT можно.
Не обходимо, например, хранить содержимое каталога на 1 число месяца. Как только наступает новый месяц. Формируем файл с новым содержимым каталога. И их сравниваем, какие строки добавились, какие убрались.
Заранее благодарен всем ответившим.
Автор: igor_andreev
Дата сообщения: 03.04.2008 19:15
sipok

Цитата:
Спасибо, но сейчас проблема, не в подключении к другому серверу, а в ошибке при копировании

Просто PUSHD делает удаленную папку текущей, часто удобней. И убери net use из цикла FOR. Как то так должно быть(без проверки правда)

Код:
for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (
if not %%i gtr 5 if not %%i equ 0 set "day-number=%%i"
)

if defined day-number (
pushd \\server1\folder
xcopy f:\folder\*.txt subfolder\%%i\ /i /Y
popd
)
Автор: Dantis
Дата сообщения: 03.04.2008 20:08
Чувствую мне не кто не мопомжет =(
Автор: Grim_Repo
Дата сообщения: 04.04.2008 00:43
Здравствуйте, подскажите - как сделать чтобы батник перед выполнением команды спрашивал - "Выполнить команду ping? [y - да/n - нет]?" Желательно чтобы батник при нажатии кнопки Y (или N) выполнял команду сразу - без нажатия Enter (как в chkdsk /f), это возможно? Заранее, спасибо.
Автор: igor_andreev
Дата сообщения: 04.04.2008 01:18
Grim_Repo

Цитата:
без нажатия Enter (как в chkdsk /f), это возможно?

Если разово попользовать, то можешь в начале батника создать reply.com, в конце удалить.
http://support.microsoft.com/kb/77457

Код:
ECHO N REPLY.COM>_.TMP
ECHO E 0100 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21>>_.TMP
FOR %%A IN (RCX 000E W Q) DO ECHO %%A>>_.TMP
ECHO.>>_.TMP
DEBUG<_.TMP>NUL
DEL _.TMP
Автор: 01MDM
Дата сообщения: 04.04.2008 07:41
igor_andreev

Цитата:
И зачем тебе проверка "if not %%i gtr 5 if not %%i equ 0"? Просто в планировщик забей батник, раз в день с понедельника по пятницу, %%i всегда будет каким-надо.


Это я просто делал как пример (4 страница), и сразу написал, что если не нужны проверки if, то их можно убрать.

Автор: Fall0utJack
Дата сообщения: 04.04.2008 08:22
Подскажите плиз, обсуждался ли батник, который автоматизирует копирование всех данных с
флэшки? т.е. вставил флэшку, запустил батник, происходит копирование всех данных в фоновом режиме в указанную папку?
Какая команда может использоваться в данном случае copy или xcopy?
Автор: Joolz
Дата сообщения: 04.04.2008 08:59
Elroir

Код: cmdow @ /HID
@echo off
TITLE If PC Start v 1.00.00
setlocal
if /i "%1"=="" (
HS_MESSAGE "Введите имя компьютера. Напимер: ifPCstart workstation01" "Неверный синтаксис" I OK
goto :EOF
)
goto CallWS
:CallWS
HS_DELAY 1000
Ping -n 1 %1 >nul
If %ERRORLEVEL%==0 (
HS_MESSAGE "Компьютер %1 вошел в сеть." "%1" I OK
GOTO :EOF
)
goto :CallWS
Автор: sipok
Дата сообщения: 04.04.2008 10:05
igor_andreev


Цитата:
И зачем тебе проверка "if not %%i gtr 5 if not %%i equ 0"? Просто в планировщик забей батник, раз в день с понедельника по пятницу, %%i всегда будет каким-надо.



весь юмор в том что этот батник из командной строки наконец то начал выполняеться как надо,
а из планировщика задач, запускаеться и копирует все в папку где расположен батник )))
установил альтернативный планировщик xstarter запускает батник и все копирует в папку Windows ))))))
я вообще в шоке, винда server 2003 r2
Автор: igor_andreev
Дата сообщения: 04.04.2008 13:12

Цитата:
из планировщика задач, запускаеться и копирует все в папку где расположен батник )))
установил альтернативный планировщик xstarter запускает батник и все копирует в папку Windows ))))))

Это может быть с правами связано. Наверно в планировщике батник выполняется от имени пользователя SYSTEM, который не имеет доступа к сетевым дискам. А из комстроки ты запускаешь от имени залогиненного пользователя.
Проверка делается:

Код:
pushd \\server\share
if errorlevel 1 goto :map_error
Автор: Elroir
Дата сообщения: 04.04.2008 13:33
Joolz
Дело в том, что "if %errorlevel%==0" и "if errorlevel 0" - это неравнозначные выражения.
Первое, действительно, проверяет равен ли код возврата нулю, а вот второе означает - "если код возврата больше или равен нулю". То есть в твоем случае - это будет оначать вообще всегда.


Добавлено:
igor_andreev
Хм.. ты уже ответил
Автор: sipok
Дата сообщения: 04.04.2008 13:45
igor_andreev


Цитата:
Это может быть с правами связано. Наверно в планировщике батник выполняется от имени пользователя SYSTEM, который не имеет доступа к сетевым дискам. А из комстроки ты запускаешь от имени залогиненного пользователя.


Я запуская со своими правами, нна подключаемом диске на мой логин даны полные права.
в Планировщике задач в графе Run as: стоит мой логин.
Автор: igor_andreev
Дата сообщения: 04.04.2008 14:01
sipok
Вставь в батник проверку и запусти из планировщика:

Код:
pushd \\server\share
if errorlevel 1 (echo %computername%\%username% %time:~0,8% Map \\server\share error>>C:\error.log & exit /b)
Автор: sipok
Дата сообщения: 04.04.2008 14:30
igor_andreev

pushd \\server\folder
Z:\>if errorlevel 1 (echo domain\user 15:22:13 Map \\server\folder error
1>>C:\error.log & exit /b )
после запуска,
файла C:\error.log не нашел )
Автор: igor_andreev
Дата сообщения: 04.04.2008 14:56
sipok

Цитата:
файла C:\error.log не нашел

Ну и прекрасно, значит вставляй вместо echo - xcopy

Код:
pushd \\server\share
if not errorlevel 1 xcopy drive:\source\*.* subfolder\destination\ /i /y
Автор: sipok
Дата сообщения: 04.04.2008 15:26
igor_andreev

Цитата:
У xcopy тоже есть коды возврата, если что. Батник то несложный, чего ты его больше недели мучаешь?


@echo off
for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (
pushd \\server\folder
cd subfolder --- добавляем cd тут
cd %%i --- и тут
if not errorlevel 1 xcopy D:\folder\*.* /i /y --- он не хотел нормально копировать в папку %%i
popd
)

При пошаговом переходе по команде cd к конечной папке, начинает нормально выподнять bat'ник из планировщика

!!!!!!!!!! Огромное СПАСИБО igor_andreev и slayer120!!!!!
Автор: igor_andreev
Дата сообщения: 04.04.2008 15:40
sipok

Цитата:
pushd \\server\folder
cd subfolder --- добавляем cd тут
cd %%i --- и тут

тогда уж pushd \\server\folder\subfolder\%%i, если ты уверен, что папка subfolder\%%i существует.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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