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

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

Автор: Sir G
Дата сообщения: 30.03.2010 07:15
Подскажите, пожалуйста, как можно определить день недели. Или в bat-файлах возможны только операции с датами?
Извининте. Нашёл ответ в шапке
Автор: mifns
Дата сообщения: 30.03.2010 09:09
Привет всем.
Нужна помощь в создании батника. Есть папка на диске С к примеру ARC и папка DER на D диске. Помогите сделать батник который бы первоначально очищал содержимое папки DER копировал папку ARC в DER и после этого все скопированное архивировал. Заранее СПАСИБО за помощь.
Автор: king_stiven
Дата сообщения: 30.03.2010 09:21
mifns

Цитата:
первоначально очищал содержимое папки DER

В шапке

Цитата:
копировал папку ARC в DER

скопировать папку 1 в папку 2 с файлами подкаталогами:
xcopy 1 2/1 /i /S /E /H /Y /D /R
Автор: cluster
Дата сообщения: 30.03.2010 09:50
Есть фаил истории программы. Нужно сформировать из него новый фаил, но только со стороками, содержащими Added (строки полностью)

Формат строк такой:
17.05.09 Added: New features
16.05.09 Fixed: Old features

Встречаются пустые строки.
Что-то проблемы у меня с оператором FOR..
Автор: eneon
Дата сообщения: 30.03.2010 10:05
Добрый день.
Проблема состоит в следующем (WinServ2003):
Имеется динамично обновляющийся файл, например С:\Archive.rar. Надо сделать так, чтобы после каждого его обновления он копировался в другую директорию, например в
С:\Dir\Archive.rar.
Как это сделать? Можно с помощью скрипта и планировщика, но в написании скриптов я совсем не шарю, поэтому прошу вашей помощи.
Автор: cluster
Дата сообщения: 30.03.2010 10:27
eneon
Ну так допиши в скрипт обновления этого архива строчку копирования ещё и в другой каталог. Или архив обновляется какой-то программой, не имеющей возможности добавить в задачу свой код?
Автор: wolf0425
Дата сообщения: 30.03.2010 11:04
cluster
Цитата:
Что-то проблемы у меня с оператором FOR..
а зачем там for?
findstr /r /b /c:".* Added: " <log.txt
Автор: eneon
Дата сообщения: 30.03.2010 11:06
cluster

Цитата:
Или архив обновляется какой-то программой, не имеющей возможности добавить в задачу свой код?


Именно
Автор: wolf0425
Дата сообщения: 30.03.2010 11:09

Цитата:
Или архив обновляется какой-то программой, не имеющей возможности добавить в задачу свой код?
а подменить запуск той программы запуском нужного батника - никак? или она непрерывно работает?
Автор: Trrrbit
Дата сообщения: 30.03.2010 11:15
Всем привет!

Столкнулся с такой вот мелочью:
Нужно через бат-файл запустить c:\windows\system32\drivers\etc\hosts так чтобы он открылся в блокноте. Т.е. не вылезло окно "Открыть с помощью...", а сразу Блокнот
Автор: mugil_cephalus
Дата сообщения: 30.03.2010 11:31
ustas1983
Уильям Станек - Командная строка Microsoft Windows
найжешь там главу про сеть (команда netsh )
Автор: eneon
Дата сообщения: 30.03.2010 11:52

Цитата:
Или архив обновляется какой-то программой, не имеющей возможности добавить в задачу свой код?

Всё, разобрался - добавил в батник той программы строчку типа:
copy С:\Archive.rar С:\DIR\Archive.rar - вроде завелось

Вопрос закрыт.
Всем спасибо за участие
Автор: wolf0425
Дата сообщения: 30.03.2010 12:05
Trrrbit
Цитата:
Нужно через бат-файл запустить c:\windows\system32\drivers\etc\hosts так чтобы он открылся в блокноте.

Код: start "" notepad c:\windows\system32\drivers\etc\hosts
Автор: mugil_cephalus
Дата сообщения: 30.03.2010 13:04
кто объяснит сей казус?
command-line mode
F:\Documents and Settings\admin>for /L %A in (1 1 2) do for %i in ("G:\scripts\TEST\red\*%~A*.*") do @echo.%~i

F:\Documents and Settings\admin>for %i in ("G:\scripts\TEST\red\*1*.*") do @echo.%~i
G:\scripts\TEST\red\calc42_run.bat
G:\scripts\TEST\red\calc.exe.lnk
G:\scripts\TEST\red\calc_readme.txt
G:\scripts\TEST\red\cd_readme.txt

где cmd нашел в именах файлов %A=*1*.* - ???


далее отрабатывает нормально:
..................................
F:\Documents and Settings\admin>for %i in ("G:\scripts\TEST\red\*2*.*") do @echo.%~i
G:\scripts\TEST\red\calc2.bat
G:\scripts\TEST\red\calc42.bat
G:\scripts\TEST\red\calc42_run.bat
G:\scripts\TEST\red\cc2.bat
Автор: king_stiven
Дата сообщения: 30.03.2010 13:50
mugil_cephalus
где cmd нашел в именах файлов %A=*1*.*
Проверил. У меня не находит. Ищи ошибки.
Автор: mugil_cephalus
Дата сообщения: 30.03.2010 13:54
king_stiven
где ошибка в этом коде? (ввел его в консоли)
Цитата:
for /L %A in (1 1 2) do for %i in ("G:\scripts\TEST\red\*%~A*.*") do @echo.%~i



Добавлено:

Цитата:
далее отрабатывает нормально:
..................................
F:\Documents and Settings\admin>for %i in ("G:\scripts\TEST\red\*2*.*") do @echo.%~i
G:\scripts\TEST\red\calc2.bat
G:\scripts\TEST\red\calc42.bat
G:\scripts\TEST\red\calc42_run.bat
G:\scripts\TEST\red\cc2.bat

помимо всех файлов с "2" в имени затесался еще и такой
G:\scripts\TEST\red\scrnsave.scr9B.bat

воообще голова идет кругом



Автор: wolf0425
Дата сообщения: 30.03.2010 14:38

Цитата:
где ошибка в этом коде? (ввел его в консоли)
нет в нем ошибки, если в консоли. может делает не то что хочешь - но делает же.


Цитата:
помимо всех файлов с "2" в имени затесался еще и такой
G:\scripts\TEST\red\scrnsave.scr9B.bat
ну затесался, подумаешь -наверно у него короткое имя с двойкой в середине. Нефиг на такие маски надеяться.
т.е. или напрочь отключаешь в файловой системе генерацию имен формата 8.3 или придумываешь другой способ поиска нужных файлов, не проверяющий короткие имена.
думаешь в сторону примера:
Код: for /L %A in (1 1 2) do echo %~A & for /f %i in ('dir /b path\. ^|findstr %~A ') do @echo.path\.%~i
Автор: mugil_cephalus
Дата сообщения: 30.03.2010 15:25
wolf0425

про Ntfs8dot3NameCreation даже в голову не пришло - никогда не знаешь, где враг окопается тихой сапой

Добавлено:
wolf0425

Цитата:
думаешь в сторону примера:
Код:for /L %A in (1 1 2) do echo %~A & for /f %i in ('dir /b path\. ^|findstr %~A ') do @echo.path\.%~i
если в path\ или в расширении могут встречаться 1 и/или 2 - то тоже можно, но будет позатейливее.

у меня код для заказчика такой был:

Код: rem @echo off
for /l %%A in (1900,1,2010) do for %%i in ("c:\folder\*(%%~A)*.*") do (
if not exist "c:\%%~A\nul" md "c:\%%~A"
move /-y "%%~i" "c:\%%~A\%%~nxi"
)
pause
Автор: wolf0425
Дата сообщения: 30.03.2010 16:22

Цитата:
findstr найдешь всю лексему (она такая - боевик-14.клинков.(2010).DVDRip.avi ) а как там вычленить 2010 год - пока не знаю
а зачем ее вычленять то? Или ты хочешь год из имени убрать? тогда как-то так:

Код: @echo off
for /l %%A in (1900,1,2010) do for /f %%i in ('dir /b /a-d c:\folder\. ^| findstr (%%~A)') do call :proc %%~A "%%~i"

pause
exit

:proc
if not exist "c:\%~1\nul" md "c:\%~1"
set "name=%~2"
call set "name=%%name:(%1)=%%"
set "name=%name:..=.%"
move /-y "c:\folder\%~2" "c:\%~1\%name%"
goto:eof
Автор: mugil_cephalus
Дата сообщения: 30.03.2010 20:42
wolf0425
я немного отсутствовал, сейчас переписал, вот чего требовалось заказчику

Код: rem @echo off
for %%I in ("c:\folder\*.*") do for /f "tokens=1-3 delims=()" %%a in ('echo.%%~nxI') do (
if not exist "c:\%%~b\nul" md "c:\%%~b"
if /i "_%%~b" neq "_" move /-y "%%~I" "c:\%%~b\%%~nxI"
)
pause
Автор: wolf0425
Дата сообщения: 30.03.2010 22:51

Цитата:
1 что означает call set ... (это же не метка и не батник) - ?
написанная команда будет выполнена в две стадии.
это такой способ избегать возни с setlocal enabledelayedexpansion

там действительно нечетный процент - у %1, а домыслы - неверны.
%1 подставляется в строку сразу при обработке call. допустим %1 это 2010
оба %% этой же обработкой преобразуются в %
после чего исполняется полученная строка set "name=%name:(2010)=%"
в сумме имеем примерный аналог - set "name=!name:(%1)=!"

ps: смайлики отключать не забывай, когда такой код пишешь.
Автор: compiler91
Дата сообщения: 30.03.2010 23:37
Мне надо добавить программку в список запускаемых при выключении компа.
Насколько я понял, мне надо создать новый раздел в
Код: HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts\Logoff\0
Автор: 01MDM
Дата сообщения: 31.03.2010 04:40
compiler91

Цитата:
как вычислить этот самый индекс.


Код:
@echo off
setlocal

set "regpath=hkcu\Software\Policies\Microsoft\Windows\System\Scripts\Logoff"

for /f %%i in ('reg query "%regpath%" ^| findstr "[0-9]*"') do set /a newindex+=1
set /a newindex-=1

reg add "%regpath%" /v %newindex% /t reg_sz /d "%programfiles%\akelpad\akelpad" /f
Автор: mugil_cephalus
Дата сообщения: 31.03.2010 08:35
wolf0425

Цитата:
в сумме имеем примерный аналог - set "name=!name:(%1)=!"

это "читабельно", а то я уж подумал, что ты - колдун :smile:

Добавлено:
wolf0425
NB в отличие от этого кода

Цитата:
command-line mode
F:\Documents and Settings\admin>for /L %A in (1 1 2) do for %i in ("G:\scripts\TEST\red\*%~A*.*") do @echo.%~i

вот этот for /L %A in (1993 1 2010) do for %i in ("G:\scripts\TEST\red\*%~A*.*") do @echo.%~i
отрабатывает без ошибок в масках на 1000 файлов (первый код тестировался на других масках, т.к. у меня нет database заказчика с файлами a-la боевик-14.клинков.(2010).DVDRip.avi ) C'est la vie!
Автор: Sglogin
Дата сообщения: 31.03.2010 10:33
Необходимо решить задачи в одном BAT-файле:
1. При входе пользователя запускается указанная программа
2. В окне CMD.exe выдается текст "Соединение с Интернет установлено"
3. Через 5 мин после действия 2 подключается сетевой диск NET USE Z: \\HP4510s\Public /PERSISTENT:NO Подскажите как прописать это время ожидания?

Как прописать команду для действия 2, так чтобы пользователь подтвердил ее нажатием ENTER?
Автор: Romeo_sh
Дата сообщения: 31.03.2010 10:54
паузу можно сделать пингами, соответственно время паузы будет зависеть от доп параметров, нужно будет поиграться с -n и -w.
Автор: mugil_cephalus
Дата сообщения: 31.03.2010 11:12
Sglogin

Код: echo."Соединение с Интернет установлено"
pause
ping -n 301 localhost>nul 2>&1
NET USE Z: \\HP4510s\Public /PERSISTENT:NO
Автор: Cheerful_a_bear
Дата сообщения: 31.03.2010 15:51
Приветствую всех.

Подскажите пожалуйста, как сделать bat-файл, чтобы

При выполнении добавлял в
Mozilla FireFox в “about:config” в “network.automatic-ntlm-auth.trusted-uris” строчку https://server.net.local:4081

И в IE https://server.net.local в местную интрасеть как доверенное
Автор: ustas1983
Дата сообщения: 31.03.2010 16:07

Цитата:
ustas1983
Уильям Станек - Командная строка Microsoft Windows
найжешь там главу про сеть (команда netsh )


А никто на пальцах не объяснит как сделать хотя бы пример какой ааа ?
Автор: ipmanyak
Дата сообщения: 31.03.2010 17:18
ustas1983 ну где- то так
@echo on
:nachalo
sleep 60
ping -a ip_адрес_шлюза_впн -n 1
if errorlevel 0 goto nachalo
rasdial имя_впн_соединения /DISCONNECT
rasdial имя_впн_соединения логин пароль
goto nachalo







Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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