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

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

Автор: ZenitFan
Дата сообщения: 08.04.2008 14:16
Помогите решить следующую задачу (по учёбе):

Создать пакетный файл, выводящий на экран строки из букв латинского алфавита (предварительно заданных в качестве его параметров) следующим образом:

A B C D E F G H I
B C D E F G H I J
C D E F G H I J H
D E F G H I J H I
...
R S T U V W X Y Z
S T U V W X Y Z
T U V W X Y Z
U V W X Y Z
V W X Y Z
W X Y Z
X Y Z
Y Z
Z

Заранее спасибо!
Автор: igor_andreev
Дата сообщения: 08.04.2008 15:08
ZenitFan

Код:
shift /?
Автор: 01MDM
Дата сообщения: 08.04.2008 15:17
ZenitFan

Код:
@echo off
setlocal enabledelayedexpansion
set "list=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%i in (0,1,26) do if not "!list:~%%i!"=="" echo !list:~%%i!
Автор: igor_andreev
Дата сообщения: 08.04.2008 15:33
01MDM
Студентам это для освоения shift и задали, видишь, в приведенном им примере по 9 букв? shift как раз столько и может обработать
Автор: 01MDM
Дата сообщения: 08.04.2008 15:38
igor_andreev
Да, к тому же мой вариант без пробелов между букв.
Автор: wolf0425
Дата сообщения: 08.04.2008 20:13
Может кто-нибудь подскажет, что надо скомандовать виндам чтоб отключить переключалку раскладок клавиатуры?
ЖЕлательно бы не убивая из батника никаких процессов, но это не догма...
Автор: SalaVilaVat
Дата сообщения: 08.04.2008 21:45
Проблема такая есть батник , который рарит на серваке 2003 все файлы одноготипа в заданной папке и её подпапках, для регулировки нагрузки перед архивацией каждого файла проверяет количество запущенных WinRar.exe командой TASKLIST, и больше 4 не запускает - ждёт N минут и проверяет снова,
НО команда тасклист в Win2003 видимо отличается от XP и фильтр IMAGENAME вызывает ошибку. в справке всё одинаково , где можно найти актуальное описание?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
XP - VISTA
C:\WINDOWS>tasklist /NH /FI "IMAGENAME eq winrar.exe"

winrar.exe 1956 Console 0 416 КБ
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Win 2003
C:\WINDOWS>tasklist /NH /FI "Imagename eq winrar.exe"
Ошибка: Фильтр поиска не опознан.

пока решил продлему копированием на сервер переименованного файла из XP
---- tasklist_xp /NH /FI "Imagename eq winrar.exe"
но хотелось бы разобратся
Автор: igor_andreev
Дата сообщения: 08.04.2008 23:03
wolf0425
Сразу оговорюсь - сам не пробовал
Но вот тут китайцы-тайцы в реестре в "HKEY_CURRENT_USER\Keyboard Layout" чет меняют
http://baohaojun.yo2.cn/articles/disable-language-input-method-switch-hotkey-for-ntemacs.html
http://www.tutorials-win.com/WindowsXP/Keyboard-layout-1578950/
И на http://windowsitpro.com/article/articleid/24570/disabling-keyboard-layout-switches.html
тоже начинают с этой ветки реестра(весь текст зарегистрированным юзерам доступен, поэтому я тоже не читал )
Попробуй поменяй reg.exe Hotkey на 3 или 4. Раз HKCU - то может после reg.exe сделать rundll32.exe user32.dll,UpdatePerUserSystemParameters, авось применится без перезагрузки.
Автор: floodway
Дата сообщения: 09.04.2008 00:25
Всем привет.
Столкнулся я со следующим кодом:

Код: for /L %%a in (1,1,3) do (
set b0=1
set b1=2
for /L %%b in (%b0%,1,%b1%) do echo %%a %%b
)
Автор: Grim_Repo
Дата сообщения: 09.04.2008 01:07
Здравствуйте, подскажите - есть ли альтернативная команда для отключения/включения интернета? Так как rasdial на подключения по локальной сети и на Wi-Fi подключения - не действует...
Автор: Elroir
Дата сообщения: 09.04.2008 02:22
floodway
http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=633&limit=1

Grim_Repo
В шапке, в разделе "Пoлезные утилиты", посмотри утилиту cnic
Автор: NIKZZZZ
Дата сообщения: 09.04.2008 04:37
wolf0425

Цитата:
Может кто-нибудь подскажет, что надо скомандовать виндам чтоб отключить переключалку раскладок клавиатуры?

Раскладка клавиатуры лежит в реестре здесь:

Код: Windows Registry Editor Version 5.00

[HKEY_USERS\.DEFAULT\Keyboard Layout]

[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
;По умолчанию 1=409 - Eng
"1"="00000409"
;Альтернативная - Rus
"2"="00000419"

[HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle]
"Hotkey"="1"
"Language Hotkey"="1"
"Layout Hotkey"="2"
Автор: Nagual
Дата сообщения: 09.04.2008 05:02
ZloyBehemoth, была когда-то такая задача мне не по зубам

1. используя copy/y

Код:
@echo off&chcp 1251>nul
echo
.
set "list=list.txt"
set "cp="
for /f "delims=" %%a in (%list%) do set "n=%%a"&call:1
goto:eof
:1
for
/r %cp% %%b in ("%n%") do @if /i exist "%%b" set "p=%%b"&call:2
goto:eof
:2
set
"p=%p:"=%"
title Копирование файла из списка "%list%" в назначение "%cp%"
echo Обнаружен дубликат "%p%" файла "%n%"
echo Заменяем файл "%n%" на его дубликат "%p%"
echo copy/y "%n%" "%p%"
:: copy/y "%n%" "%p%"
echo.

для работы кода размундирь команду

2. используя всеми забытый replace

Код:
@echo off&chcp 1251>nul
set
"list=list.txt"
set "cp=c:\"
for /f "delims=" %%a in (%list%) do replace/s "%%a" "%cp%"

для успешной работы код, список и файлы надо положить в любую папку
предполагатся, что список файлов создавать умеем
Автор: ZloyBehemoth
Дата сообщения: 09.04.2008 06:44
king_stiven

Цитата:
поставь в конец батника pause, запусти батник, скопируй и выложи здесь.



Цитата:
D:\root>FOR /R D:\root\ %c IN (FreeCommander.ini) DO (
del %c
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "%~dpc"
)

D:\root>(
del D:\root\FreeCommander.ini
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "D:\root\"
)
\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini
Скопировано файлов: 1.

D:\root>(
del D:\root\Grand\FreeCommander.ini
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "D:\root\Grand\"
)
\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini
Скопировано файлов: 1.

D:\root>(
del D:\root\Grand\freeCommander\FreeCommander.ini
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "D:\root\Grand\freeCommander\"
)
\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini
Скопировано файлов: 1.


Пояснения D:\root\ - папка где надо искать, FreeCommander.ini - файл который ищем,
\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini - файл которым надо заменить найденный файл.
После работы батника файл FreeCommander.ini появляется во всех директориях D:\root\.

Добавлено:
king_stiven


Цитата:
Попробуй 2 пример.


Второй пример заработал. Но там я не могу указать путь где надо проводить поиск и замену. Пока ищет только внутри директории из котрой его запускают.

Автор: king_stiven
Дата сообщения: 09.04.2008 07:34
ZloyBehemoth
1 Так тебе надо только в папке D:\root\ искать файл, а не в её подпапках?
2
Цитата:
Второй пример заработал. Но там я не могу указать путь где надо проводить поиск и замену. Пока ищет только внутри директории из котрой его запускают.

Пример ?

Добавлено:

Код:
Код: for /f "usebackq tokens=*" %%c in (`dir "D:\root\\FreeCommander.ini" /b /s /a:-d`) do (
del %%c
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "%%~dpc"
)
Автор: ZloyBehemoth
Дата сообщения: 09.04.2008 08:57
king_stiven

Цитата:
Пример ?


Вот это работает, но ищет только внутри директории в которой запустили батник:
for /f "usebackq tokens=*" %%c in (`dir "FreeCommander.ini" /b /s /a:-d`) do (
del %%c
xcopy "\\server\home\1\FoxitReader\FreeCommander\FreeCommander.ini" "%%~dpc"
)


Цитата:
1 Так тебе надо только в папке D:\root\ искать файл, а не в её подпапках?


Нужно искать вглубь структуры начиная от указанного пути, т.е. в данном случае во всех папках и подпапках D:\root\ .


Цитата:
Код:


Попробую. Спасибо!
Автор: Grim_Repo
Дата сообщения: 09.04.2008 17:56
Здравствуйте... Подскажите - реально ли в случае если батник копирует с диска - создавать папку с именем диска, а в ней папки по времени копирования... Затем я вставил следующий диск - батник создал новую папку с именем диска и в ней создал папки по времени копирования...
Еще было бы неплохо сделать так - чтобы xcopy после того как скопировал все из указанной папки, проверяла ее на изменения и копировал изменившиеся и добавленные файлы...
Кстати - реально ли сделать так чтобы, например, в батнике прописан файл конфигурации... В файле конфигурации пишется: set COPYdir=d:\cpdr\ (это директория для копирования )батник при запуске считал из файла конфигурации - куда копировать, затем подставил указанную в файле конфигурации директорию в нужные места в своем коде и начал копирование...

P.S.
Еще хотелось бы узнать - как заставить батник записывать ВСЕ свои действия в лог...
И еще вопрос - когда я запускаю батник для копирования с диска E: (это дисковод в котором нет диска) то появляется мессага (окошко) в котором говорится - "Вставте диск в дисковод"... Как сделать так чтобы это окошко не показывалось?


Заранее, спасибо!
Автор: Elroir
Дата сообщения: 10.04.2008 00:51
Grim_Repo

Цитата:
И еще вопрос - когда я запускаю батник для копирования с диска E: (это дисковод в котором нет диска) то появляется мессага (окошко) в котором говорится - "Вставте диск в дисковод"... Как сделать так чтобы это окошко не показывалось?

Чтобы этот диалог не появлялся, надо в реестре, по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows поставить цифру 2 как значение параметра ErrorMode.

Код:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows]
"ErrorMode"=dword:00000002

Автор: Dantis
Дата сообщения: 10.04.2008 07:22
Здравствуйте.
Кто может мне помочь написать батник перезагрузки компа в определенное время?
мне нужно что бы кадые день в Три Утра комп перезагружался обычном способом..типа я нажал пуск\выключение\перезагрузка.

лучше всего если этот процесс до начала перещагрузки выведит окошко типа Сохраните все данные.комп перезагрузится через 30 секунд.
Автор: 01MDM
Дата сообщения: 10.04.2008 08:56
Dantis
Можно даже не писать батник, просто добавь в шедулер на 3 утра каждый день:

shutdown /r /t 30
Автор: wolf0425
Дата сообщения: 10.04.2008 10:21
мда. все увиденные тут приемы блокирования переключалки клавы - работают только в следующей сессии, в текущей ничего не блокируется...
Хотя уже хорошо, что нашелся способ заблокировать встроенную - навесную срубать из батника элементарно, на чем пока и остановился.
Автор: Dantis
Дата сообщения: 10.04.2008 14:06

Цитата:
Можно даже не писать батник, просто добавь в шедулер на 3 утра каждый день:

shutdown /r /t 30


Вы меня не так поняли... Мне нужно что бы батник сам проверял системное время и ровно в 3 утра перезускал комп. Сам.
Автор: NikTychina
Дата сообщения: 10.04.2008 14:20
Нужно, чтобы при запущенной командной строке не было её окна (можно свернуть), а также чтобы не было видно кнопки в панели задач (это, пожалуй, главное). Как можно сделать?
Автор: S4astliff4ik
Дата сообщения: 10.04.2008 14:28
Ребят,а как этот файлик расшифровать???

@Echo off
xcopy.exe Y:\BackUp\BackUp\Buch\*.* Z:\BackUp\Buch\*.* /s /e /h /Y
xcopy.exe Y:\BackUp\BackUpTorg\Torg\*.* Z:\BackUp\Torg\*.* /s /e /h /Y
If Not ErrorLevel 1 Goto Exit
Echo ***SERIOUS ERROR DETECTED DURING BACKUP***
:Exit
EXIT

Автор: wolf0425
Дата сообщения: 10.04.2008 15:05
S4astliff4ik, а чего тут расшифровывать?
скопировать с переписыванием, с подкаталогами (включая пустые) и без подтверждений все файлы (включая скрытые и системные) из двух каталогов Y: на Z:
если второе копирование было не вполне успешным (например какие-то файлы были заблокированы и не скопировались, или места не хватило, или ещё что) - то выдать в консоль сообщение о серьезной ошибке.
Автор: S4astliff4ik
Дата сообщения: 10.04.2008 15:10
wolf0425,не совсем правильно вопрос поставил. Интересует
Цитата:
*.*
,
Цитата:
/s /e /h /Y

Я так понимаю,это DOSовские команды так??? если возможно,то ткнуть носом,где взглянуть,т.к. впервые с этим столкнулся (bat-файлы,script)...

Автор: igor_andreev
Дата сообщения: 10.04.2008 15:12
Grim_Repo

Цитата:
Еще было бы неплохо сделать так - чтобы xcopy после того как скопировал все из указанной папки, проверяла ее на изменения и копировал изменившиеся и добавленные файлы...

У xcopy есть параметр /M
Но для постоянного зеркалирования тогда уж лучше пользоваться robocopy с параметрами /MON и(или) /MOT
Автор: wolf0425
Дата сообщения: 10.04.2008 15:13
Dantis, прописать перезагрузку в шедулер на 03:00- куда надежнее...
Да и проще - нет необходимости проверять - перезагружались сегодня или нет, решение пригодно и для круглосуточно работающих батников (сидящих в автозагрузке, etc)

Но если уж очень надо именно из батника следить за временем

:wait
it "%time:~0,5%"=="03:00" goto :reboot
ping -n 5 localhost > nul
goto :wait

:reboot
shutdown /r /t 30

если комп перезагрузится быстро и батник успеет снова запуститься в 03:00:59 - будет нежданчик

S4astliff4ik - xcopy /?
Автор: 01MDM
Дата сообщения: 10.04.2008 15:18
Dantis


Цитата:
Вы меня не так поняли... Мне нужно что бы батник сам проверял системное время и ровно в 3 утра перезускал комп. Сам.


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

Если есть какие нюансы, объясни.

Автор: S4astliff4ik
Дата сообщения: 10.04.2008 15:21
wolf0425,точно,спасибо... как я забыл... век живи-век учись...



Добавлено:
wolf0425,
Цитата:
*.*
,вот это не совсем понял... что это???

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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