Построение пакетных файлов (*.bat)

Подскажите, как с помощью .bat файла реализовать копирование папки со всем содержимым из места А (адрес на жестком диске) в место Б (флешка) с заменой уже имеющихся файлов.
xcopy
/Y - Для перезаписи без подтверждения
/E - Копирует все папки и подпапки, включая пустые.
в общем, юзай справку.
 

    MahMahoritos

    очки: 7
    Нет комментариев

Crammer

Ословед
Объясните, как в батнике объявлять переменные ? Так же хочется узнать, есть ли инструкции ввода-вывода (типа cout, cin в языке C++), для сохранения введенных значений в переменных.
 

    Jessica

    очки: 11
    Нет комментариев

IvanGT

Ословед
Награды
8
Имеется дискета с операционной системой MS-DOS и компьютер с Windows XP. Надо что бы на компе при выборе загрузки системы можно было выбрать и Windows и DOS (естественно без загрузки с дискеты) и загрузить полную версию DOS. Подскажите как это сделать?
 

Crammer

Ословед
Нужно чтоб при запуске батника ребутилась винда. Как это сделать ? Как я понимаю надо какой то виндоузовский файл запустить, который отправляет ось в ребут, дак где такой находится ?
 

Crammer

Ословед
shutdown /?
в командной строке. С ходу разберешься. Лежит в %WINDIR%\system32\shutdown.exe

Еще вопрос:
shutdown -f (Принудительное завершение приложений без предварительного предупреждения), не пойму, какие именно будут остановленны приложения ?
 

Crammer

Ословед
Несколько вопросов:

1) Как задать размер открываемого окна батника ?
2) Как задать положение окна на экране (т.е. в какой области экрана будет появляться окошко бата) ?
3) Как запускать юатник свернутым ?
 
а можно этими баиниками автоматизировать установку софта?скажим поставили вин а потом софт одним запуском батника?
 
Подскажите, как с помощью .bat файла реализовать копирование папки со всем содержимым из места А (адрес на жестком диске) в место Б (флешка) с заменой уже имеющихся файлов.

xcopy
/Y - Для перезаписи без подтверждения
/E - Копирует все папки и подпапки, включая пустые.
в общем, юзай справку.
а как реализовать не копирование, а перемещение каталога со всеми подкаталогами? не первый год бьюсь...
 
Если генерируется - потом опять создастся всё заново, ->, зачем перемещать. Если файлы заняты и удалить нельзя - тогда переместить тоже не сможешь.
 
Вот такая задачка
Разработать батник рассылки текстового сообщения всем машинам рабочей группы (домена). Рассылаемое сообщение вводится пользователем. Предусмотреть возможность администратору указать машину, для которой сообщение не предназначено.
Есть вот такое решение.

@if /i "%2"=="" (net send /domain %1 & exit)
@net view>123.txt
for /f "delims=\ skip=3 tokens=1" %%A in (123.txt) do (if /I "%%A" neq "%2" ( net send %%A %1 ))

Оно не работает. Что-то во втором If не получается.
Вот что получается:

C:\...>123.bat 1234 IRA

C:\...>for /F "delims=\ skip=3 tokens=1" %A in (123.txt)
do (if /I "%A" NEQ "IRA" (net send %A 1234 ) )

C:\...>(if /I "IRA" NEQ "IRA" (net send IRA 1234 ) )
Сообщение успешно отправлено IRA.

C:\...>(if /I "PC_S" NEQ "IRA" (net send PC_S 1234 ) )
Сообщение успешно отправлено PC_STAS.

Хотя на комп с именим IRA не должен отправлять сообщение.
В чем ошибка?
 

XoD

Самец :)
Награды
6
Срочно нужна помощь bat-аников! =)

По ОСям имею задание такого типа:

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

Сломал весь моск об эту задачу. Пожалуйста помогите с реализацией (если можно, с комментами)!
 

Sacura

Ословед
Награды
5
Вот такая задачка
Разработать батник рассылки текстового сообщения всем машинам рабочей группы (домена). Рассылаемое сообщение вводится пользователем. Предусмотреть возможность администратору указать машину, для которой сообщение не предназначено.

Зачем велосипед изобретать? Есть же программы типа Vypress Chat.
1206570781_vy214.gif

или любой другой Net-Talk аналог с возможностью отпарвки многоадресных сообщений.
 

XoD

Самец :)
Награды
6
Зачем велосипед изобретать? Есть же программы типа Vypress Chat.
...
или любой другой Net-Talk аналог с возможностью отпарвки многоадресных сообщений.

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


Свою задачу решил, но условие взял несколько проще, чем описал выше. Вот код, может кому пригодится:

Код:
@echo off
title ЂваЁЎгвл ”a©«a
:dir
    COLOR f0
    cls
    set /p d=‚ўҐ¤ЁвҐ Їгвм ¤® дa©«a:
    if not exist %d% goto dir else goto file
:file
    COLOR f0
    cls
    echo ЂваЁЎгвл      ”a©«
    echo ______________________________
    cd /D %d%
    attrib
    echo.
    set /P a=‚ўҐ¤ЁвҐ Ё¬п дa©«a:
    if not exist %d%%a% goto file else goto print
:print
    COLOR f0
    cls
    echo ЂваЁЎгвл      ”a©«
    echo ______________________________
    attrib %d%%a%
    echo.
    echo.
:menu
    echo „Ґ©бвўЁп:
    echo.
    echo гбвa*®ўЁвм
    echo.
    echo +R - в®«мЄ® звҐ*ЁҐ, +A -  aаеЁў*л©, +S - бЁб⥬*л©, +H - бЄалвл©
    echo.
    echo б*пвм
    echo.
    echo. -R - в®«мЄ® звҐ*ЁҐ, -A -  aаеЁў*л©, -S - бЁб⥬*л©, -H - бЄалвл©
    echo.
    echo „®Ї®«*ЁвҐ«м*®:
    echo.
    echo F - ўлЎаaвм ¤агЈ®© дa©«, X - ўл室
    echo.
    set /p act=

if "%act%"=="+r" (
    attrib +R %d%%a%
    goto print
) else (
    if "%act%"=="-r" (
    attrib -R %d%%a%
    goto print
) else (
    if "%act%"=="+a" (
    attrib +A %d%%a%
    goto print
) else (
    if "%act%"=="-a" (
    attrib -A %d%%a%
    goto print
) else (
    if "%act%"=="+s" (
    attrib +S %d%%a%
    goto print
) else (
    if "%act%"=="-s" (
    attrib -S %d%%a%
    goto print
) else (
    if "%act%"=="+h" (
    attrib +H %d%%a%
    goto print
) else (
    if "%act%"=="-h" (
    attrib -H %d%%a%
    goto print
) else (
    if "%act%"=="f" (
    COLOR 7
    cls
    goto file
) else (
    if "%act%"=="n" (
    set /p f=‚ўҐ¤ЁвҐ *®ў®Ґ Ё¬п дa©«a:
    rename %d%%a% %f%
    set a=%f%
    cls
    goto print
) else (
    if "%act%"=="x" ( 
    exit
) else (
    echo ЌҐв в Є®© Є®¬ *¤л!
    goto print
))))))))))
Обработка введенной команды через if использована для удобства добавления новых функий + для фильтрации ввода на несуществующие команды (или имена файлов\каталогов)
Все русские фразы даны в кодировке CP-1251 для их адекватного отображения командной строкой.
 

XoD

Самец :)
Награды
6
Вот такая задачка
Разработать батник рассылки текстового сообщения всем машинам рабочей группы (домена). Рассылаемое сообщение вводится пользователем. Предусмотреть возможность администратору указать машину, для которой сообщение не предназначено.
...

В чем ошибка?


Вот тут твоя ошибка скорее всего кроется:

Ты проверь успешность выполнения данной команды для начала. Скорее всего, у тебя там ошибка 6118, поэтому сообщение летит всем, кого найдет в домене.
 

XoD

Самец :)
Награды
6
Кстати, в моем скрипте, изложенном выше есть косяк, который я никак не могу поправить. Помогите кто может:

Код:
@echo off
title ЂваЁЎгвл ”a©«a
:dir
    COLOR f0
    cls
    set /p d=‚ўҐ¤ЁвҐ Їгвм ¤® дa©«a:
    if not exist %d% goto dir else goto file
:file
    COLOR f0
    cls
    echo ЂваЁЎгвл      ”a©«
    echo ______________________________
    cd /D %d%
    attrib
    echo.
    set /P a=‚ўҐ¤ЁвҐ Ё¬п дa©«a:
    if not exist %d%%a% goto file else goto print
:print
    COLOR f0
    cls
    echo ЂваЁЎгвл      ”a©«
    echo ______________________________
    attrib %d%%a%
    echo.
    echo.
:menu
    echo „Ґ©бвўЁп:
    echo.
    echo гбвa*®ўЁвм
    echo.
    echo +R - в®«мЄ® звҐ*ЁҐ, +A -  aаеЁў*л©, +S - бЁб⥬*л©, +H - бЄалвл©
    echo.
    echo б*пвм
    echo.
    echo. -R - в®«мЄ® звҐ*ЁҐ, -A -  aаеЁў*л©, -S - бЁб⥬*л©, -H - бЄалвл©
    echo.
    echo „®Ї®«*ЁвҐ«м*®:
    echo.
    echo F - ўлЎаaвм ¤агЈ®© дa©«, X - ўл室
    echo.
    set /p act=

if "%act%"=="+r" (
    attrib +R %d%%a%
    goto print
) else (
    if "%act%"=="-r" (
    attrib -R %d%%a%
    goto print
) else (
    if "%act%"=="+a" (
    attrib +A %d%%a%
    goto print
) else (
    if "%act%"=="-a" (
    attrib -A %d%%a%
    goto print
) else (
    if "%act%"=="+s" (
    attrib +S %d%%a%
    goto print
) else (
    if "%act%"=="-s" (
    attrib -S %d%%a%
    goto print
) else (
    if "%act%"=="+h" (
    attrib +H %d%%a%
    goto print
) else (
    if "%act%"=="-h" (
    attrib -H %d%%a%
    goto print
) else (
    if "%act%"=="f" (
    COLOR 7
    cls
    goto file
) else (
[COLOR=Red]    if "%act%"=="n" (
    set /p f=‚ўҐ¤ЁвҐ *®ў®Ґ Ё¬п дa©«a: [/COLOR][COLOR=Red][B]<<=[/B][B]Вот в этом блоке![/B]
    rename %d%%a% %f%
    set a=%f%
    cls
    goto print[/COLOR]
) else (
    if "%act%"=="x" ( 
    exit
) else (
    echo ЌҐв в Є®© Є®¬ *¤л!
    goto print
))))))))))

Эта функция должна спросить новое имя выбранного файла и переименовать его. Скрипт имя спрашивает, но почему-то не переименовывает и после goto print не может вывести атрибуты файла с новым именем. Как исправить?
 
Сверху