Привет всем.... Давно не виделись...
У меня тут проблемка появилась... задали задание в универе... А я искал в инете и ничё не нашёл.
Корчое надо вот что сделать в ДОСе, одними лишь командами без использования командеров и как можна простейшими командами...
Тоесть перейти в корневой каталог диска - использовать команду cd / а не cd c:/
1. Скопировать некоторый подкаталог текущего логического диска в корневой каталог (включая все подкаталоги)
2. Проверить файловую структуру диска на корректность, результаты вывести в файл OUTPUT.TXT в корневом каталоге...
Буду очень благодарен если кто-то поможет...
Приветствуем вас на Форуме PHILka.RU
Вы вошли на форум как ГОСТЬ. Убедительно просим вас зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.
войти - или зарегистрироваться!
Вы вошли на форум как ГОСТЬ. Убедительно просим вас зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.
войти - или зарегистрироваться!
Команды Ms-dos
Автор:
SergSlim
, 17 сен 2006 14:04
#2
Отправлено 17 Сентябрь 2006 - 21:01
Код
@echo off
chcp 1251
cls
cd /d %SystemDrive%
title Проверка и запись дескрипторов тома
Echo Пожалуйста подождите, идет запись информации в файл...
xcopy /y /e /v /c /i /h /r /k /g "полный путь откуда" "полный путь куда"
chkdsk C:>%SystemDrive%\Output.txt
chcp 1251
cls
cd /d %SystemDrive%
title Проверка и запись дескрипторов тома
Echo Пожалуйста подождите, идет запись информации в файл...
xcopy /y /e /v /c /i /h /r /k /g "полный путь откуда" "полный путь куда"
chkdsk C:>%SystemDrive%\Output.txt
Также в 4 строке при нажождении в этом же томе, можно использовать команду:
Код
cd\
#3
Гость_Shvedenko_*
Отправлено 27 Сентябрь 2006 - 21:51
Если кому нужен самый полный справочник по ДОСу
то качнуть его можно здесь
http://www.etalonpc....books/MSDOS.zip
то качнуть его можно здесь
http://www.etalonpc....books/MSDOS.zip
#4
Отправлено 01 Октябрь 2006 - 23:34
Раз заговориле об DOS, может и мне кто поможет с задачкой?!
Вобщем нужно написать прогу которая в каталоге пронумерует все файлы *.txt
У меня что-то со счетчиком не получается, а так должно быть похоже на это:
set j=1
for %%i in (*.txt) do (rename %%i %j%_%%i, set /A j=%j%+1)
Помогите, плиз!
Вобщем нужно написать прогу которая в каталоге пронумерует все файлы *.txt
У меня что-то со счетчиком не получается, а так должно быть похоже на это:
set j=1
for %%i in (*.txt) do (rename %%i %j%_%%i, set /A j=%j%+1)
Помогите, плиз!
#5
Отправлено 02 Октябрь 2006 - 11:39
Serdg
Несколько команд в одной строке разделяются не запятой, а двойным амперсандом (&&).
Инкремент переменной j можем быть записан как set /A j+=1. (и, судя по написанному в справке по set, не нужно заключать в "%" j в правой части оператора присвоения, даже если инкремент писать как у Тебя).
for %%i in (*.txt) do (rename %%i %j%_%%i && set /A j+=1)
Правда, в цикле инкремент почему-то работать отказывается...
Причём, по завершении цикла выясняется, что инкремент работал (судя по значению переменной j), но внутри цикла всё равно используется значение, заданное перед началом...
В чём проблема - так и не понял...
Выход: использовать связку из двух cmd-файлов:
1.cmd
2.cmd
запускать, естесственно, 1.cmd
Несколько команд в одной строке разделяются не запятой, а двойным амперсандом (&&).
Инкремент переменной j можем быть записан как set /A j+=1. (и, судя по написанному в справке по set, не нужно заключать в "%" j в правой части оператора присвоения, даже если инкремент писать как у Тебя).
for %%i in (*.txt) do (rename %%i %j%_%%i && set /A j+=1)
Правда, в цикле инкремент почему-то работать отказывается...
Причём, по завершении цикла выясняется, что инкремент работал (судя по значению переменной j), но внутри цикла всё равно используется значение, заданное перед началом...
В чём проблема - так и не понял...
Выход: использовать связку из двух cmd-файлов:
1.cmd
Код
set /a j=0
for %%i in (*.xls) do call 2.cmd %%i
for %%i in (*.xls) do call 2.cmd %%i
2.cmd
Код
set /A j+=1
rename %1 %j%_%1
rename %1 %j%_%1
запускать, естесственно, 1.cmd
#7
Отправлено 02 Октябрь 2006 - 15:18
Выход: использовать связку из двух cmd-файлов:
1.cmd
2.cmd
запускать, естесственно, 1.cmd
1.cmd
Код
set /a j=0
for %%i in (*.xls) do call 2.cmd %%i
for %%i in (*.xls) do call 2.cmd %%i
2.cmd
Код
set /A j+=1
rename %1 %j%_%1
rename %1 %j%_%1
запускать, естесственно, 1.cmd
У меня 2 вопроса:
1. зачем в 1.cmd в конце писать %%i
2. почему в 2.cmd пишется в переименовании %1, а не %%i
Если не трудно поясни пожалуйста!!
#8
Отправлено 02 Октябрь 2006 - 20:11
Цитата
зачем в 1.cmd в конце писать %%i
Мы передаём имя файла из цикла как параметр для второго батника
Цитата
почему в 2.cmd пишется в переименовании %1, а не %%i
Потому что именно так в cmd-файле обозначается первый из параметров переданных ему в командной строке.
Для справки: %0 - имеет значение=имени самого cmd-файла, %2 - второй параметр командной строки и т.п.
А вообще советую изучить справку Windows по командной строке. Там немало интересных и вполне остроумных инструментов автоматизации рутинных работ...
А если не хватает просто консольных команд - можно взяться за изучение Windows Scripting Host. Там вообще возможности ограничены только возможностями операционной системы...
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных
Вы вошли на форум как ГОСТЬ. Просим вас войти или зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.