Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: 28Diman89
Дата сообщения: 07.09.2008 15:26
Smitis
насчет левых файлов разобрался, эт были обновления для 4,43 версии Др Веба
напиши плз код чтоб тока обновленные скачивал, еще надо чтоб желательно по датам сортировал, и не знаю как сделать чтоб папку с обновлением создавал не на С а на флехе (запускаю батник с флехи) Вот код

copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
mkdir C:\DrWeb_Update\
wget -P C:\DrWeb_Update\ -A zip -r -l 1 -nd ftp://ftp.drweb.com/pub/drweb/bases/
Автор: Smitis
Дата сообщения: 07.09.2008 16:33
28Diman89
Получить букву диска (с двоеточием), откуда запущен батник, можно так: %~d0
Чтобы не скачивал для 4.33 (там на FTP вложенная папка) после ключа "-l" нужен 0 (уровень просмотра папок)

Код:
@echo off

:: Переходим в папку к батнику
cd /d "%~dp0"

:: Копируем файлы из папки с батником
:: Хотя, в принципе, этого можно не делать, если эти файлы действительно
:: лежат в папке с батником
copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"

:: Создаём папку для обновлений на том же диске
mkdir %~d0\DrWeb_Update\ 2> nul

:: Качаем
wget -P %~d0\DrWeb_Update -A zip -r -l 0 -nd -N ftp://ftp.drweb.com/pub/drweb/bases/
Автор: XXXXL
Дата сообщения: 09.09.2008 00:58
Здравствуйте! есть больше 1000 файлов в формате .jpg все с разными названиями, помогите переименовать их, чтобы были по номерам 1.jpg, 2.jpg, 3.jpg.........1000.jpg и т.д
Спасибо!
Автор: Elroir
Дата сообщения: 09.09.2008 01:50
XXXXL

Код:
@echo off
setlocal
set "counter=1"
for %%a in (*.jpg) do (
call :renc "%%~fa"
set /a "counter+=1"
)
goto :EOF
:renc
ren "%~1" "%counter%.jpg"
Автор: tolyn77
Дата сообщения: 09.09.2008 08:08
Привет, Всем
подскажите есть такой скрипт
@echo off
set "comp=\\%1"
for /f "tokens=2* delims=: " %%i in ('sc %comp% query state^= all ^| findstr "SERVICE_NAME"') do (
set "name=%%i"
for /f "tokens=3* delims=: " %%k in ('sc %comp% qc %%i ^| findstr "START_TYPE"') do (
set "starttype=%%k"
)
for /f "tokens=3* delims=: " %%k in ('sc %comp% query %%i ^| findstr "STATE"') do (
set "statetype=%%k"
)
call:report
)
goto:eof
:report
echo %comp% %name% - %starttype% %statetype%

как можно его запустить из другого скрипта что бы не прерывать его работу?
я пытался сделать так
@test.bat com1 > service.log
@test.bat com2 >> service.log
@test.bat com3 >> service.log
так он прерывается на первой строке
заранее благодарен
Автор: XXXXL
Дата сообщения: 09.09.2008 08:33
Elroir, спасибо! спас
Автор: sanprocenko
Дата сообщения: 09.09.2008 10:18
Привет всем. Помогите с написанием батника, который переносит все файлы определенного типа с локального диска на шару в сети.
Автор: KapralBel
Дата сообщения: 09.09.2008 10:43
sanprocenko
roboсopy d:\ \\server\share\CopyD\ *.xxx /s /MOV
Автор: sanprocenko
Дата сообщения: 09.09.2008 11:31
Спасибо за помощь!
Автор: lid111
Дата сообщения: 09.09.2008 18:04
Вот задача: есть каталог с кучей подкаталогов, в которых, на разном уровне вложенности папок есть файлы с именем, например, ААА и файлы с именем ВВВ. В ряде случаев эти файлы находятся в незаархивированном виде, в ряде случаев, напротив - в архивах (это незапароленные архивы форматов rar, zip и 7z). Возможно ли с помощью bat-файла одним махом найти все эти файлы ААА и BBB, где бы они не находились, и переименовать ААА в XXX, а BBB - в YYY - и в архивах, и вне архивов?

Если это задача запредельная для bat-аники, может, кто посоветует (можно в ПМ), как еще ее можно решить с наименьшими усилиями?
Автор: nexgen
Дата сообщения: 10.09.2008 20:31
Возникла такая задача: написать батник для удаления из папки всех подпапок с файлами кроме следующих папок
All Users, Default User, LocalService, NetworkService, Администратор, Administrator
Автор: KapralBel
Дата сообщения: 10.09.2008 20:43
nexgen
Лень делать, только подскажу идею
Переход в папку
по FOR /D - перебор всех папок
Сравниваешь по имени - если не то RD /q /s
Автор: nexgen
Дата сообщения: 10.09.2008 20:51
Спасибо за идею, но все же хотелось бы готовый скрипт, а то я плохо понимаю в бат-файлах
Автор: KapralBel
Дата сообщения: 10.09.2008 20:59

Код: @Echo Off
PushD "C:\Documents and Settings"
For /D %%a in (*) Do Call :ll "%%a"
PopD
GoTo :EOF

:ll
If %1=="All Users" GoTo :EOF
If %1=="Default User" GoTo :EOF
If %1=="LocalService" GoTo :EOF
If %1=="NetworkService" GoTo :EOF
If %1=="Администратор" GoTo :EOF
If %1=="Administrator" GoTo :EOF
RD /q /s %1
GoTo :EOF
Автор: nexgen
Дата сообщения: 10.09.2008 21:18
Спасибо за оперативную поддержку!
Автор: Alexx123
Дата сообщения: 12.09.2008 15:12
Уважаемые знатоки, напомните, как примонтировать в Windows папку в качестве диска/дисковода. Совсем команда из головы вылетела.
Автор: KapralBel
Дата сообщения: 12.09.2008 15:15
Alexx123
subst /?
Автор: lid111
Дата сообщения: 12.09.2008 16:21
Задача: в папке A на разных уровнях вложенности, находятся папки C, D, E, F. Надо удалить их вместе с содержимым. Батник нужен для ускорения ручного уменьшения дистрибутива Windows.
Автор: BlackBerry
Дата сообщения: 12.09.2008 17:34
Можно ли пакетными средствами решить следующую задачу:

Найти в файле X строку с подстрокой Y и распечатать следующие 1(2,3,4 ...) строки за
найденной?
Автор: Tipulatoid
Дата сообщения: 13.09.2008 05:19
BlackBerry

Код: @echo off
set file=X
set phrase=Y
set lines_to_echo=5

for /f "skip=2 tokens=1 delims=[]" %%a in ('find /n "%phrase%" %file%') do set line_num=%%a
for /f "skip=%line_num% tokens=*" %%a in (%file%) do call :line "%%a"
goto :eof

:line
set /a count+=1
if %count% leq %lines_to_echo% echo %~1
goto :eof
Автор: 01MDM
Дата сообщения: 13.09.2008 10:19
lid111

Цитата:
Задача: в папке A на разных уровнях вложенности, находятся папки C, D, E, F. Надо удалить их вместе с содержимым.



Код:
@echo off
pushd "a"
for %%i in (C D E F) do (
    for /r /d %%j in (*) do if /i "%%~nxj"=="%%i" rd /s /q "%%j"
)
popd
Автор: XXXXL
Дата сообщения: 13.09.2008 13:04
Здравствуйте!
Снова обращаюсь к вам за помощью.

В файле l.txt есть линк:

Код: http://forum.ru-board.com/topic.cgi?forum=5&topic="замена"&start=1300
Автор: Ant0n1o
Дата сообщения: 13.09.2008 13:25
Хочу с помощью батника свернуть все открытые окна. Возможно?

Добавлено:
ых, догадался
в блокноте написать

[Shell]
Command=2
IconFile=%SystemRoot%\system32\shell32.dll,34
[Taskbar]
Command=ToggleDesktop

сохранить как *.scf
вызывать из батника
Автор: Tipulatoid
Дата сообщения: 13.09.2008 13:49
XXXXL

Код: @echo off
for /f "tokens=*" %%a in (z.txt) do set newvalue=%%a
for /f "tokens=1-6 delims=&=" %%a in (l.txt) do echo %%a=%%b^&%%c=%newvalue%^&%%e=%%f>r.txt
Автор: XXXXL
Дата сообщения: 13.09.2008 14:19
Tipulatoid, спасибо тебе, то, что и нужно было
Только вот пробел после вставленого кода появляется:

Код: http://forum.ru-board.com/topic.cgi?forum=5&topic=55555555 &start=1300
Автор: Tipulatoid
Дата сообщения: 13.09.2008 15:59
XXXXL

Цитата:
Убрать его у меня не получилось

Либо в z.txt есть пробел в конце строки либо внимательно почитай шапку, там где Важно:

Цитата:
С текстового документа "1.txt" нужно скопировать всё, что находится между d& и &= в "2.txt"


Код: @echo off
for /f "tokens=1-3 delims=d&" %%a in (1.txt) do echo %%b>2.txt
Автор: XXXXL
Дата сообщения: 13.09.2008 17:13
Tipulatoid, огромное спасибо!
Всё работает как надо )))
Почитал шапку, там где "Важно" и в прямь помогло.
Ещё раз спасибо и пока.

Добавлено:
В текстовом документе больше 1000 букв ,символов,цифр, нужно удалить все что идут между десятым и сотым.
Это возможно?
Автор: 01MDM
Дата сообщения: 13.09.2008 21:07
XXXXL


Цитата:
В текстовом документе больше 1000 букв ,символов,цифр, нужно удалить все что идут между десятым и сотым.

На каждой строчке?

Наверное это можно сделать с помощью sed (это было бы правильней), но нет времени разбираться. Вариант ниже не гарантирует корректность.

Код:
@echo off
setlocal
for /f "tokens=*" %%i in (1.txt) do call:1 "%%i"
move /y "1.tmp" "1.txt"
goto:eof

:1
set "line=%~1"
echo %line:~0,10%%line:~100% 1>>"1.tmp"
Автор: lid111
Дата сообщения: 14.09.2008 01:39
01MDM

Цитата:
lid111

Цитата:Задача: в папке A на разных уровнях вложенности, находятся папки C, D, E, F. Надо удалить их вместе с содержимым.




Код:
@echo off
pushd "a"
for %%i in (C D E F) do (
for /r /d %%j in (*) do if /i "%%~nxj"=="%%i" rd /s /q "%%j"
)
popd

А если оставить сами папки, но удалить из них файлы, тогда как?

Добавлено:
Возможен ли батник, изменяющий в Windows местоположение папок "Мои документы" для всех пользователей компа, с переносом, конечно же, содержимого папок?
Новый адрес папки "Мои документы" для каждого пользователя должен выглядеть так: "D:\ Документы_Имя учетной записи". То есть при учетных записях "Вася" и "Петя" на диске D должны образоваться две папки: "Документы Вася" и "Документы Петя", заполненные соответственно их документами.
На всякий случай добавлю, что батник должен нормально отрабатывать и на русской, и на английской винде (т. е. исходная папка в Windows может иметь разные названия (рус. и англ.).
Автор: XXXXL
Дата сообщения: 14.09.2008 13:21
01MDM, спасибо всё работает.

Добавлено:

Как то вы мне помогли написать этот бат:

Код: @echo off
setlocal

set "toChange=12345"
set "changeTo=54321"

gsar -s%toChange% -r%changeTo% -o test.txt

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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