![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#31
|
|||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 10.08.2006
Сообщений: 41
Репутация: 12
|
Нужно прописать полный путь к папке батника. Например "c:\windows" - должна открыться папка windows. Еще можно нажать кнопочку спасибо. ![]() Последний раз редактировалось kochetoff; 22.12.2008 в 16:18.. |
|||||||||||||||||||||||
|
|
|
| Реклама: |
|
|
#32
|
|
Пользователь
Пол:
Регистрация: 19.04.2009
Сообщений: 55
Репутация: 217
|
Вроде, никто не описал net use - подключение сетевой папки как локального диска.
Этим батником обновляю антивирусную базу на машинах в лок сети. Код:
net use x: "\\m1\update" del x:\*.* /q copy Update\*.* x:\ net use x: /delete net use x: "\\m2\update" del x:\*.* /q copy Update\*.* x:\ net use x: /delete pause Собственно, команда net значительно шире. |
|
|
|
|
|
#33
|
|
Неактивный пользователь
Регистрация: 04.05.2009
Сообщений: 4
Репутация: 2
|
Часто появляется ситуация, когда в BAT-нике необходимо прописать пути в киррилице (допустим при настройке автоархивации). Можно конечно поковыряться в настройках Windows, но есть более простой способ.
В командной строке: 1) Пишем "copy con C:\1.txt" (без кавычек) 2) Курсор перемещается на следующую строку. Здесь пишем название папки в кириллице (можно скопировать через буфер обмена), например, "Базы 1С\Торговля 2009". 3) После окончания ввода нажимаем Ctrl+Z. Файл 1.txt записывается. Заходим в него и копируем полученные иероглифы в ваш BAT-ник. |
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#34
|
|
Неактивный пользователь
Регистрация: 04.05.2009
Сообщений: 1
Репутация: 1
|
Во: рассчёт факториала. Собираем в BAT и запускаем:
Код HTML:
REM Факториал
REM Начало программы в цикле MSTART
:MSTART
REM Отключение вывода команд на экран
@ECHO OFF
REM Очистка экрана
CLS
REM Вывод названия программы на экран ( %0 - путь к запущеному файлу )
ECHO %0 Factorial:
REM Ввод значения с клавиатуры
SET /P n="Enter n = "
REM Если n < 0 то идём на выход M1
IF 0 GTR %n% GOTO M1
REM Если n > 15 то идём на выход M1
IF %n% GTR 15 GOTO M1
REM Начальные значения переменных
SET /A x1 = 1
SET /A x2 = 1
REM Если n = 0 или n = 1 сразу выводим ответ
:M2
IF %x2% GTR %n% GOTO M3
REM Рассчёт факториала
SET /A x1*=%x2%
SET /A x2+=1
REM пока x2<=n повторяем цикл M2
GOTO M2
:M3
REM Вывод результата на экран
ECHO Factorial %n% = %x1%
REM Предложение повторить
SET /P n="Again? Y/N : "
IF %n% == Y GOTO MSTART
IF %n% == y GOTO MSTART
REM Идём на выход
GOTO MEND
:M1
ECHO Possible values for n : [0..15]
PAUSE
REM Идём в начало
GOTO MSTART
:MEND
ECHO Program quit...
PAUSE
Вот: крестики нолики. Выход - Q Ставить в клетки - цифрой от 1 до 9. Проверка на ошибки есть - не сломается ) Собираем в BAT и запускаем: Код HTML:
@ECHO OFF REM Крестики нолики REM Добавление работы со строкой IF -"%1" == -"" GOTO STARTGAME IF -"%1" == -"getlen" GOTO STRING_GETLEN IF -"%1" == -"getat" GOTO STRING_GETAT IF -"%1" == -"setat" GOTO STRING_SETAT :STARTGAME REM переменные SET pole1=123456789 SET pole2=000000000 SET /A pos = 0 CLS ECHO XorO 3*3 SET /P pos="Who start game? Computer / Player - P / [C] : " IF %pos% == P GOTO GAME IF %pos% == p GOTO GAME CALL %0 setat %pole1% 5 O SET pole1=%ERRORLEVEL% CALL %0 setat %pole2% 5 2 SET pole2=%ERRORLEVEL% :GAME CLS ECHO ------- ECHO ^|%pole1:~0,1%^|%pole1:~1,1%^|%pole1:~2,1%^| ECHO ^|%pole1:~3,1%^|%pole1:~4,1%^|%pole1:~5,1%^| ECHO ^|%pole1:~6,1%^|%pole1:~7,1%^|%pole1:~8,1%^| ECHO ------- SET /P pos="Enter position - " IF %pos% == q GOTO BATEND IF %pos% == Q GOTO BATEND REM Если ввод не верный - повтор ввода CALL %0 getat %pole2% %pos% IF %ERRORLEVEL% NEQ 0 GOTO GAME CALL %0 setat %pole2% %pos% 1 IF %pole2% == %ERRORLEVEL% GOTO GAME SET pole2=%ERRORLEVEL% CALL %0 setat %pole1% %pos% X SET pole1=%ERRORLEVEL% REM Компьютер REM 5, 1, 3, 7, 9, 2, 4, 6 ,8 - Приоритет ходов компьютера от min к max IF %pole2:~7,1% == 0 SET /A pos = 8 IF %pole2:~5,1% == 0 SET /A pos = 6 IF %pole2:~3,1% == 0 SET /A pos = 4 IF %pole2:~1,1% == 0 SET /A pos = 2 IF %pole2:~8,1% == 0 SET /A pos = 9 IF %pole2:~6,1% == 0 SET /A pos = 7 IF %pole2:~2,1% == 0 SET /A pos = 3 IF %pole2:~0,1% == 0 SET /A pos = 1 IF %pole2:~4,1% == 0 SET /A pos = 5 REM Попытка не проиграть REM горизонталь IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "011" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "101" SET /A pos = 2 IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "110" SET /A pos = 3 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "011" SET /A pos = 4 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "101" SET /A pos = 5 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "110" SET /A pos = 6 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "011" SET /A pos = 7 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "101" SET /A pos = 8 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "110" SET /A pos = 9 REM вертикаль IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "011" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "101" SET /A pos = 4 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "110" SET /A pos = 7 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "011" SET /A pos = 2 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "101" SET /A pos = 5 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "110" SET /A pos = 8 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "011" SET /A pos = 3 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "101" SET /A pos = 6 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "110" SET /A pos = 9 REM диагональ IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "011" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "101" SET /A pos = 5 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "110" SET /A pos = 9 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "011" SET /A pos = 3 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "101" SET /A pos = 5 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "110" SET /A pos = 7 REM Попытка выйграть REM горизонталь IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "022" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "202" SET /A pos = 2 IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "220" SET /A pos = 3 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "022" SET /A pos = 4 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "202" SET /A pos = 5 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "220" SET /A pos = 6 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "022" SET /A pos = 7 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "202" SET /A pos = 8 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "220" SET /A pos = 9 REM вертикаль IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "022" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "202" SET /A pos = 4 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "220" SET /A pos = 7 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "022" SET /A pos = 2 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "202" SET /A pos = 5 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "220" SET /A pos = 8 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "022" SET /A pos = 3 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "202" SET /A pos = 6 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "220" SET /A pos = 9 REM диагональ IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "022" SET /A pos = 1 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "202" SET /A pos = 5 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "220" SET /A pos = 9 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "022" SET /A pos = 3 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "202" SET /A pos = 5 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "220" SET /A pos = 7 CALL %0 setat %pole1% %pos% O SET pole1=%ERRORLEVEL% CALL %0 setat %pole2% %pos% 2 SET pole2=%ERRORLEVEL% REM Проверка победы IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "111" GOTO WIN1 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "111" GOTO WIN1 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "111" GOTO WIN1 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "111" GOTO WIN1 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "111" GOTO WIN1 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "111" GOTO WIN1 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "111" GOTO WIN1 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "111" GOTO WIN1 IF "%pole2:~0,1%%pole2:~1,1%%pole2:~2,1%" == "222" GOTO WIN2 IF "%pole2:~3,1%%pole2:~4,1%%pole2:~5,1%" == "222" GOTO WIN2 IF "%pole2:~6,1%%pole2:~7,1%%pole2:~8,1%" == "222" GOTO WIN2 IF "%pole2:~0,1%%pole2:~3,1%%pole2:~6,1%" == "222" GOTO WIN2 IF "%pole2:~1,1%%pole2:~4,1%%pole2:~7,1%" == "222" GOTO WIN2 IF "%pole2:~2,1%%pole2:~5,1%%pole2:~8,1%" == "222" GOTO WIN2 IF "%pole2:~0,1%%pole2:~4,1%%pole2:~8,1%" == "222" GOTO WIN2 IF "%pole2:~2,1%%pole2:~4,1%%pole2:~6,1%" == "222" GOTO WIN2 IF %pole2:~0,1% == 0 GOTO GAME IF %pole2:~1,1% == 0 GOTO GAME IF %pole2:~2,1% == 0 GOTO GAME IF %pole2:~3,1% == 0 GOTO GAME IF %pole2:~4,1% == 0 GOTO GAME IF %pole2:~5,1% == 0 GOTO GAME IF %pole2:~6,1% == 0 GOTO GAME IF %pole2:~7,1% == 0 GOTO GAME IF %pole2:~8,1% == 0 GOTO GAME GOTO WIN3 :WIN1 CLS ECHO ------- ECHO ^|%pole1:~0,1%^|%pole1:~1,1%^|%pole1:~2,1%^| ECHO ^|%pole1:~3,1%^|%pole1:~4,1%^|%pole1:~5,1%^| ECHO ^|%pole1:~6,1%^|%pole1:~7,1%^|%pole1:~8,1%^| ECHO ------- ECHO Player - win GOTO QUIT :WIN2 CLS ECHO ------- ECHO ^|%pole1:~0,1%^|%pole1:~1,1%^|%pole1:~2,1%^| ECHO ^|%pole1:~3,1%^|%pole1:~4,1%^|%pole1:~5,1%^| ECHO ^|%pole1:~6,1%^|%pole1:~7,1%^|%pole1:~8,1%^| ECHO ------- ECHO Computer - win GOTO QUIT :WIN3 CLS ECHO ------- ECHO ^|%pole1:~0,1%^|%pole1:~1,1%^|%pole1:~2,1%^| ECHO ^|%pole1:~3,1%^|%pole1:~4,1%^|%pole1:~5,1%^| ECHO ^|%pole1:~6,1%^|%pole1:~7,1%^|%pole1:~8,1%^| ECHO ------- ECHO No winners GOTO QUIT :QUIT SET /P pos="Play again? Y/[N] - " IF %pos% == Y GOTO STARTGAME IF %pos% == y GOTO STARTGAME GOTO BATEND REM Описание функций :STRING_GETLEN REM Подсчёт длинны REM %2 Массив IF -"%2" == -"" GOTO STRING_ERRORQUIT REM Переменные SET /A STRING_GETLEN_len = 0 SET STRING_GETLEN_st=%2 :STRING_GETLEN_LEN0 IF -"%STRING_GETLEN_st%" NEQ -"" ( SET STRING_GETLEN_st=%STRING_GETLEN_st:~1% SET /A STRING_GETLEN_len += 1 GOTO STRING_GETLEN_LEN0 ) SET /A ERRORLEVEL = %STRING_GETLEN_len% GOTO STRING_QUIT :STRING_GETAT REM Возвращение i-го символа REM %2 Массив, %3 Номер элемента IF -"%2" == -"" GOTO STRING_ERRORQUIT IF -"%3" == -"" GOTO STRING_ERRORQUIT SET STRING_GETAT_st=%2 SET /A STRING_GETAT_i = %3 IF 1 GTR %3 GOTO STRING_ERRORQUIT CALL %0 getlen %2 IF %3 GTR %ERRORLEVEL% GOTO STRING_ERRORQUIT :STRING_GETAT_AT0 IF %STRING_GETAT_i% GTR 1 ( SET STRING_GETAT_st=%STRING_GETAT_st:~1% SET /A STRING_GETAT_i -= 1 GOTO STRING_GETAT_AT0 ) SET STRING_GETAT_st=%STRING_GETAT_st:~0,1% SET ERRORLEVEL=%STRING_GETAT_st% GOTO STRING_QUIT :STRING_SETAT REM Замена i-го символа REM %2 Массив, %3 Номер элемента, %4 Новый элемент IF -"%2" == -"" GOTO STRING_ERRORQUIT IF -"%3" == -"" GOTO STRING_ERRORQUIT IF -"%4" == -"" GOTO STRING_ERRORQUIT SET STRING_SETAT_st=%2 SET STRING_SETAT_st2=0 SET STRING_SETAT_st2=%STRING_SETAT_st2:~1% SET /A STRING_SETAT_i = 1 :STRING_SETAT_AT1 IF -"%STRING_SETAT_st%" NEQ -"" ( SET STRING_SETAT_st=%STRING_SETAT_st:~1% IF %STRING_SETAT_i% NEQ %3 SET STRING_SETAT_st2=%STRING_SETAT_st2%%STRING_SETAT_st:~0,1% IF %STRING_SETAT_i% == %3 SET STRING_SETAT_st2=%STRING_SETAT_st2%%4 SET /A STRING_SETAT_i += 1 GOTO STRING_SETAT_AT1 ) SET ERRORLEVEL=%STRING_SETAT_st2% GOTO STRING_QUIT :STRING_ERRORQUIT SET /A ERRORLEVEL = 0 :STRING_QUIT :BATEND Последний раз редактировалось DRG12000; 04.05.2009 в 23:24.. Причина: Добавлено сообщение |
|
|
|
| Сказали спасибо: |
|
|
#35
|
|
Постоялец
![]() ![]() Пол:
Регистрация: 11.01.2007
Адрес: Сургут
Сообщений: 223
Репутация: 157
|
|
|
|
|
|
|
#36
|
|
Неактивный пользователь
Пол:
Регистрация: 10.08.2006
Сообщений: 41
Репутация: 12
|
Все что может команда net:
http://s56.radikal.ru/i151/0912/15/4ab14bac2003.jpg |
|
|
|
|
|
#37
|
|
Новичок
Пол:
Регистрация: 19.03.2010
Адрес: беларусь
Сообщений: 28
Репутация: 0
|
rem Определяем ip-адрес
for /f "tokens=1,2,3" %%i in ('netsh diag show ip 1 ^|find "="') do set ip=%%k |
|
|
|
|
|
#38
|
|
Неактивный пользователь
Регистрация: 09.11.2009
Сообщений: 4
Репутация: 1
|
cmd /c start /low /separate %windir%system32/calc.exe
актуально для 16 разрядных приложений меньше тормозят |
|
|
|
|
|
#39
|
|
Неактивный пользователь
Пол:
Регистрация: 16.01.2010
Сообщений: 1
Репутация: 0
|
Подскажите, а как написать батник, чтобы с помощью рара делать sfx архивы, и чтобы в архивах автоматически прописывался комментарий и даже чтобы менять автоматически имя окна архива?
|
|
|
|
|
|
#40
|
|
Только что три дня потратил на написание батника для бекапа(да знаю что извращенец, и на vbs ето быстрее и удобнее, но vbs еще нужно знать, а на ег изучение я потрачу намного больше трех дней ), я не буду приводить, все что нарыл на просторах тырнета приведу только самое полезное и малоизвестное
) Советы
__________________
Подпись удалена! Последний раз редактировалось PEHDOM; 20.07.2010 в 17:17.. |
|
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#41
|
|
Неактивный пользователь
Пол:
Регистрация: 12.05.2009
Сообщений: 5
Репутация: 0
|
Всем доброго времени суток.
мож кто знает, как удалить список файлов по временному диапазону, например, удалить файлы созданные с 10:00 до 20:00??? |
|
|
|
|
|
#42
|
|
Новичок
Пол:
Регистрация: 04.02.2008
Сообщений: 20
Репутация: 3
|
Привет.
Есть задача проверить текстовые файлы на содержание некоторой последовательности символов. Можно искать в файлах с помощью команды find в батнике, но надо рекурсивно перебрать все файлы в каталогах и подкаталогах и т.д. пока не будут проверены все файлы. Не знаю как это сделать. |
|
|
|
|
|
#43
|
|
Новичок
Пол:
Регистрация: 28.11.2009
Сообщений: 10
Репутация: 2
|
Можно примерно так: type a.txt >> b.txt type nul > a.txt |
|
|
|
|
|
#44
|
|
Новичок
Пол:
Регистрация: 04.02.2008
Сообщений: 20
Репутация: 3
|
Вот решение моей задачи:
Код:
@echo off rem Цикл по файлам java и css for /R %%p in (*.java *.css *.jsp) do ( rem Если в пути не встречается \dist\ или \.SVN \build\ то вызывается процедура search, в которую передаётся путь к файлу echo "%%p" | find /I "\DIST\" >> null || echo "%%p" | find /I "\.SVN" >> null || echo "%%p" | find /I "\BUILD\" >> null || call :search %%p ) goto :end :search %1 echo Search in %1 rem поиск ">>>>>>>" или "<<<<<<<" в переданном пути и обрезание лишнего вывода команыд find find /N /I ">>>>>>>" "%1" | find /I ">>>>>>>" && echo ">>>>>>>" was found in %1 find /N /I "<<<<<<<" "%1" | find /I "<<<<<<<" && echo "<<<<<<<" was found in %1 exit /b :end echo Done. Сейчас пользуюсь поиском редактора Notepad++ |
|
|
|
|
|
#45
|
|||||||||||||||||||||||
|
Неактивный пользователь
Пол:
Регистрация: 09.09.2010
Сообщений: 16
Репутация: 0
|
Одна поправка. После "echo P_A_C_K_I_N_G___E_R_R_O_R__!" надо вставить "Pause>nul", иначе пользователи не успеют увидеть ошибку ![]() |
|||||||||||||||||||||||
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| PDF-files password | REAL_XLD | Хакинг в локальных сетях | 11 | 16.05.2008 19:35 |
| VIP Files Protector | zbychm | Варезник | 2 | 03.05.2008 19:17 |
| Deleting files Xp need help | BorkPC | Microsoft Windows | 11 | 16.12.2005 02:16 |
|
|