Перейти к содержимому

Приветствуем вас на Форуме PHILka.RU
Вы вошли на форум как ГОСТЬ. Убедительно просим вас зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.
войти - или зарегистрироваться!
Фотография

Команды Ms-dos


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1
SergSlim

SergSlim

    Коренной Житель

  • Участники
  • 185 сообщений
Привет всем.... Давно не виделись...

У меня тут проблемка появилась... задали задание в универе... А я искал в инете и ничё не нашёл.

Корчое надо вот что сделать в ДОСе, одними лишь командами без использования командеров и как можна простейшими командами...

Тоесть перейти в корневой каталог диска - использовать команду cd / а не cd c:/

1. Скопировать некоторый подкаталог текущего логического диска в корневой каталог (включая все подкаталоги)

2. Проверить файловую структуру диска на корректность, результаты вывести в файл OUTPUT.TXT в корневом каталоге...


Буду очень благодарен если кто-то поможет...

#2
LocKtaR-o-DarK

LocKtaR-o-DarK

    Читатель

  • Участники
  • 6 сообщений
Код
@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

Также в 4 строке при нажождении в этом же томе, можно использовать команду:
Код
cd\


#3
Гость_Shvedenko_*

Гость_Shvedenko_*
  • Гости
Если кому нужен самый полный справочник по ДОСу
то качнуть его можно здесь

http://www.etalonpc....books/MSDOS.zip

#4
Serdg

Serdg

    Участник

  • Участники
  • 43 сообщений
Раз заговориле об DOS, может и мне кто поможет с задачкой?!
Вобщем нужно написать прогу которая в каталоге пронумерует все файлы *.txt
У меня что-то со счетчиком не получается, а так должно быть похоже на это:

set j=1
for %%i in (*.txt) do (rename %%i %j%_%%i, set /A j=%j%+1)

Помогите, плиз!

#5
Borland

Borland

    Gold Member

  • Участники
  • 695 сообщений
Serdg
Несколько команд в одной строке разделяются не запятой, а двойным амперсандом (&&).
Инкремент переменной j можем быть записан как set /A j+=1. (и, судя по написанному в справке по set, не нужно заключать в "%" j в правой части оператора присвоения, даже если инкремент писать как у Тебя).
for %%i in (*.txt) do (rename %%i %j%_%%i && set /A j+=1)
Правда, в цикле инкремент почему-то работать отказывается... B)
Причём, по завершении цикла выясняется, что инкремент работал (судя по значению переменной j), но внутри цикла всё равно используется значение, заданное перед началом...
В чём проблема - так и не понял...

Выход: использовать связку из двух cmd-файлов:
1.cmd
Код
set /a j=0
for %%i in (*.xls) do call 2.cmd %%i

2.cmd
Код
set /A j+=1
rename %1 %j%_%1

запускать, естесственно, 1.cmd

#6
Serdg

Serdg

    Участник

  • Участники
  • 43 сообщений
Спасибо за решение, но интересно почему в одном не получвется B) !?

#7
Serdg

Serdg

    Участник

  • Участники
  • 43 сообщений
Цитата(Borland @ Oct 2 2006, 12:39 PM) Просмотр сообщения
Выход: использовать связку из двух cmd-файлов:
1.cmd
Код
set /a j=0
for %%i in (*.xls) do call 2.cmd %%i

2.cmd
Код
set /A j+=1
rename %1 %j%_%1

запускать, естесственно, 1.cmd


У меня 2 вопроса:
1. зачем в 1.cmd в конце писать %%i
2. почему в 2.cmd пишется в переименовании %1, а не %%i

Если не трудно поясни пожалуйста!!

#8
Borland

Borland

    Gold Member

  • Участники
  • 695 сообщений
Цитата
зачем в 1.cmd в конце писать %%i

Мы передаём имя файла из цикла как параметр для второго батника

Цитата
почему в 2.cmd пишется в переименовании %1, а не %%i

Потому что именно так в cmd-файле обозначается первый из параметров переданных ему в командной строке.
Для справки: %0 - имеет значение=имени самого cmd-файла, %2 - второй параметр командной строки и т.п.
А вообще советую изучить справку Windows по командной строке. Там немало интересных и вполне остроумных инструментов автоматизации рутинных работ...
А если не хватает просто консольных команд - можно взяться за изучение Windows Scripting Host. Там вообще возможности ограничены только возможностями операционной системы...

#9
Serdg

Serdg

    Участник

  • Участники
  • 43 сообщений
Спасибо за разъяснение.. B)




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Вы вошли на форум как ГОСТЬ. Просим вас войти или зарегистрироваться! Для того, что бы вам был доступен весь функционал форума.