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

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

Автор: king_stiven
Дата сообщения: 09.11.2007 20:53
Lutvun
%date%
Автор: Lutvun
Дата сообщения: 09.11.2007 22:47
king_stiven
Спасибо! А может есть такаяже только чтоб от системных настроек не зависела?
Автор: king_stiven
Дата сообщения: 09.11.2007 22:55
Lutvun
а чем системная не устраивает?


Добавлено:
небось хочешь не 09.11.2007 а 2007.11.09 ?


@echo off
for /f "delims=. tokens=1,2,3" %%e in ("%date%") do (
md %%g.%%f.%%e
)
Автор: Lutvun
Дата сообщения: 09.11.2007 23:08
Ну так она зависит от настроек и если в системе разделителём служыт не точька а слеш ничиво не получитса поскольку имени типа 09/11/2007 создать не получитса.
Автор: king_stiven
Дата сообщения: 09.11.2007 23:18
Lutvun
где то было решение, возможно в шапке
Автор: Smitis
Дата сообщения: 10.11.2007 00:07
Lutvun
В 4-х частях темы уже хрен знает сколько раз разбирали.
Честно говоря, этот вопрос уже всех, по-моему, достал
Автор: Maza Faka
Дата сообщения: 10.11.2007 07:04
Lutvun
Один из вариантов:

Код:
@echo off
for /f "skip=2 tokens=3" %%a in (
'reg query "HKCU\Control Panel\International" /v sDate') do set sep=%%a

for /f "delims=%sep% tokens=1-3" %%a in ("%date%") do echo %%a-%%b-%%c
Автор: 01MDM
Дата сообщения: 10.11.2007 08:05
Lutvun
А что мешает использовать %date:/=.%
Автор: Cyril Konst
Дата сообщения: 10.11.2007 09:22
Народ, такая задача:
Скопировать содержимое папки "Мои документы" и "Рабочий стол" из каждого профиля пользователя на другой компьютер. Профилей несколько десятков.
Подзадача: Сжать всю эту инфу в 7z с сохранением структуры каталогов.
Автор: Lutvun
Дата сообщения: 10.11.2007 11:05
01MDM
Во, то что надо. Спасибо.

Добавлено:
А можно так учесть несколько символов? Например %date:/:=.% чтобы и двоеточие и слеш заменяло.
Автор: Maza Faka
Дата сообщения: 10.11.2007 11:52
Будем считать, что путь к аккаунтам пользователей стандартный: "c:\documents and settings", если нет, то измени путь на нужный тебе. Архивы создаются в директории откуда был запущен батник. Используется консольная версия архиватора 7zip, скопируй её в папку Windows.

Код:
@echo off
for /f "delims=" %%a in (
'dir "c:\documents and settings" /b /s /a:d ^| find /v /i "\Default" ^| findstr "документы$"') do (
for /f "delims=\ tokens=3" %%b in ("%%a") do 7z.exe a -t7z "%%~nxb".7z "%%a"
)
Автор: Elroir
Дата сообщения: 10.11.2007 11:53
Lutvun

Цитата:
А можно так учесть несколько символов?

Так - нельзя.
Можно по отдельности:

Код:
set d=%date:/=.%
set d=%d::=.%
Автор: Maza Faka
Дата сообщения: 10.11.2007 11:56
Lutvun


Цитата:
А можно так учесть несколько символов?

Попробуй мой код.
Автор: Cyril Konst
Дата сообщения: 10.11.2007 13:02
Maza Faka
Спасибо. А вот ещё задача: Скопировать учётки с одного компа на другой и перенести пользовательские файлы (это вы уже показали).
Автор: Maza Faka
Дата сообщения: 10.11.2007 14:22
Cyril Konst
Просто скопировать учётки вместе с данными на другой компьютер? Нужно немного изменить код:

Код:
@echo off
for /f "delims=" %%a in (
'dir "c:\documents and settings" /b /s /a:d ^| find /v /i "\Default" ^| findstr "документы$"') do (
for /f "delims=\ tokens=3" %%b in ("%%a") do xcopy "%%a" "\\comp1\c\accounts\%%b" /i /e /k /r /h
)
Автор: Cyril Konst
Дата сообщения: 10.11.2007 14:26
Maza Faka
Я имел ввиду перенос локальных логинов и паролей прежде всего.
Новый сервак покупаем. И нужно перенести аккаунты пользователей и их файлы.
Автор: Maza Faka
Дата сообщения: 10.11.2007 16:27
Cyril Konst
В этом я тебе не помощник, тебе сюда http://forum.ru-board.com/forum.cgi?forum=8
Автор: Cyril Konst
Дата сообщения: 10.11.2007 17:41
Maza Faka
Тогда подскажи такую вещь:
Есть файлик с логинами и паролями.
Как с помошью bat-файла сделать цикл из команд вида:
net user %login% %password% /add
чтобы переменные брались из файлика.
Автор: 01MDM
Дата сообщения: 10.11.2007 18:23
Cyril Konst
Идея не слишком хорошая для коммандного файла..

Будет работать если нет пробелов в имени пользователя или в его пароле, в чем я сомневаюсь.

Код:
@echo off
for /f "tokens=1,2" %%i in (users.txt) do (
net user %%i %%j /add
)
Автор: 19w85
Дата сообщения: 10.11.2007 23:15
у меня динамический IP меняется всего в трех диапазонах:
AAA.AA.0.0 - AAA.AA.255.255
BBB.BB.0.0 - BBB.BB.255.255
CCC.CC.0.0 - CCC.CC.255.255

Есть вопрос:
Как с помощью pip.exe сделать проверку IP и чтобы при попадании в первый диапазон сразу происходил реконнект?

Собственно, сейчас у меня так (т.е. проверка происходит только на то что IP вообще поменялся):
@echo off
for /F "delims=<>" %%A in ('pip.exe') do set OldIP=%%A
:_Disconnect (подчеркивания, конечно, нет)
nircmdc.exe rashangup "Avangard DSL Connection"
nircmdc.exe wait 1000
:Connect
nircmdc.exe rasdial "Avangard DSL Connection" "" "ptn" "ptn"
rasdial.exe | find.exe /i "Avangard DSL Connection"
if %errorlevel%==1 (nircmdc.exe wait 1000 & goto Connect)
for /F "delims=<>" %%B in ('pip.exe') do set NewIP=%%B
if %OldIP%==%NewIP% goto Disconnect

Автор: Valdon
Дата сообщения: 10.11.2007 23:17
Блин, чет затупил однако.... Как добавить с помощью echo пустую строку в файл ?
Автор: Elroir
Дата сообщения: 10.11.2007 23:22
Valdon

Код:
echo.>>file
Автор: 01MDM
Дата сообщения: 10.11.2007 23:25
Valdon
echo. >>file

<<
Автор: Valdon
Дата сообщения: 10.11.2007 23:31
Вот спасибо, я так и думал, но у меня случайно пробел затесался между echo и точкой
Автор: Tipulatoid
Дата сообщения: 11.11.2007 04:16
19w85

Цитата:
Как с помощью pip.exe сделать проверку IP и чтобы при попадании в первый диапазон сразу происходил реконнект?

Pip.exe у меня Касперский не дал скачать (говорит, троян в ней) - поэтому без нее

Код: @echo off
setlocal
:: Установка переменых
set "connection_name=Avangard DSL Connection"
set "connection_login=LOGIN"
set "connection_password=PASSWORD"

:: Проверка существования соединения
:check_inet
rasdial | find "%connection_name%" && (goto check_ip) || (goto connect)

:: Проверка IP
:check_ip
for /f "tokens=1* delims=:. " %%a in ('ipconfig ^| find "IP"') do set "cur_address=%%b"
for /f "tokens=1-2 delims=." %%a in ('echo %cur_address%') do (
if /i %%a.%%b==AAA.AA (
goto disconnect
) else (
goto ok
)
)

:: Отключение
:disconnect
rasdial "%connection_name%" /DISCONNECT
ping -n 3 -w 1000 localhost>nul
goto connect

:: Соединение
:connect
rasdial "%connection_name%" %connection_login% %connection_password%
rasdial | find /i "%connection_name%"
if %errorlevel%==1 (
ping -n 3 -w 1000 localhost>nul
goto connect
)
goto check_ip

:: Все хорошо
:ok
echo IP адрес - %cur_address%
Автор: 19w85
Дата сообщения: 11.11.2007 09:25
Tipulatoid
Большое спасибо, все отлично работает (я только не сразу заметил, что нужно еще добавить одни кавычки для имени соединения в блоке дисконнект и из-за этого дисконнект не происходил...но это мелочь...), потом добавил сюда проверку на то, что IP поменялся и получил именно то, что хотел...
Автор: Tipulatoid
Дата сообщения: 11.11.2007 14:40
19w85
Да, кавычки - это моя ошибка. Исправил на всякий случай.
Автор: Valdon
Дата сообщения: 11.11.2007 16:58
Народ, подскажите плиз, простейший вариант создания файла-пустышки из bat'ника (0 байт) ?
Автор: Elroir
Дата сообщения: 11.11.2007 17:13
Valdon

Код:
set /p=<nul>empty.txt
Автор: Tipulatoid
Дата сообщения: 11.11.2007 17:50
По пути "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Connections\Pbk" лежит файл rasphone.pbk В нем информация о всех существующих подключениях в системе. Названия подключений заключены в квадратные скобки [] Если открыть файл в Блокноте, они прекрасно читаются. В консоли же, если подключение названо кириллическими буквами, выводятся крякозябры. Уже вроде все перепробовал - выводил cmd /a /c more rasphone.pbk | find "[", и по-другому - не могу добиться читаемого вывода в 1251. Решение не подскажете?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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