<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>My notes. Заметки на полях. : cmd</title><link>http://blogs.technet.com/ru/archive/tags/cmd/default.aspx</link><description>Tags: cmd</description><dc:language>ru-RU</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Добавляем расширение всем файлам в папке</title><link>http://blogs.technet.com/ru/archive/2007/01/05/581485.aspx</link><pubDate>Fri, 05 Jan 2007 07:46:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:581485</guid><dc:creator>Vitaliy Titov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/ru/comments/581485.aspx</comments><wfw:commentRss>http://blogs.technet.com/ru/commentrss.aspx?PostID=581485</wfw:commentRss><description>&lt;P&gt;Казалось бы, что может быть проще - запускаем cmd.eхe и пользуемся командой ren (rename).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Попытка 1:&lt;/STRONG&gt;&lt;BR&gt;ren *.* *.*.ext&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Результат:&lt;/STRONG&gt;&lt;BR&gt;filename =&amp;gt; filename..ext&lt;BR&gt;filename.aaa =&amp;gt; filename.aaa.ext&lt;BR&gt;filename.aaa.aaa =&amp;gt; filename.aaa.aaa.ext&lt;/P&gt;
&lt;P&gt;Как видно из примера, файлы не имевшие раширения, получили лишнюю точку.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Попытка 2:&lt;/STRONG&gt;&lt;BR&gt;ren * *.ext&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Результат:&lt;/STRONG&gt;&lt;BR&gt;filename =&amp;gt; filename.ext&lt;BR&gt;filename.aaa =&amp;gt; filename.ext (ошибка - файл уже существует)&lt;BR&gt;filename.aaa.aaa =&amp;gt; filename.aaa.ext&lt;/P&gt;
&lt;P&gt;Снова проблема - для файлов с расширением, новое расширение не добавляется, а заменяется.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Попытка 3:&lt;BR&gt;&lt;/STRONG&gt;ren *? *.*.ext&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Результат:&lt;BR&gt;&lt;/STRONG&gt;см. попытку 1&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Попытка 4:&lt;/STRONG&gt;&lt;BR&gt;ren *? *.ext&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Результат:&lt;/STRONG&gt;&lt;BR&gt;см. попытку 2&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Попытка 5:&lt;/STRONG&gt;&lt;BR&gt;ren *? *?.ext&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Результат:&lt;/STRONG&gt;&lt;BR&gt;filename =&amp;gt; filename.ext&lt;BR&gt;filename.aaa =&amp;gt; filename.ааа.ext&lt;BR&gt;filename.aaa.aaa =&amp;gt; filename.aaa.ааа.ext&lt;/P&gt;
&lt;P&gt;Ура! Работает!&lt;BR&gt;Контрольный выстрел:&lt;BR&gt;.aaa =&amp;gt; .aaa.eхt&lt;/P&gt;
&lt;P&gt;Аналогичная ситуация будет наблюдаться и для команд dir, del, copy, move и т.д. В чем причина столь причудливого поведения утилит командной строки? Утверждается, что корни проблемы уходят в прошлое чуть ли не на 25 лет назад&amp;nbsp;во времена DOSа и его прородителя QDOSа, а кажущаяся текущая непредсказуемость толкования символов * и ? связанна с необходимостью обеспечивать обратную совместимость с некими древними приложениями командной строки.&lt;/P&gt;
&lt;P&gt;Кстати, в проблеме с переименованиями существует еще и потенциальная возможность коллизии при добавлении разрешения (просто замените в нашем примере eхt на aaa) - так что если в вашем приложении нужна железная гарантия успешного переименования - прийдется писать код для выбора правильной последовательности переименований самостоятельно. (Думаю, будет достаточно просто упорядочить файлы по убыванию длины).&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=581485" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/ru/archive/tags/cmd/default.aspx">cmd</category><category domain="http://blogs.technet.com/ru/archive/tags/wildcard/default.aspx">wildcard</category></item><item><title>Командная строка как стиль жизни</title><link>http://blogs.technet.com/ru/archive/2006/11/15/517240.aspx</link><pubDate>Wed, 15 Nov 2006 23:04:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:517240</guid><dc:creator>Vitaliy Titov</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/ru/comments/517240.aspx</comments><wfw:commentRss>http://blogs.technet.com/ru/commentrss.aspx?PostID=517240</wfw:commentRss><description>&lt;P&gt;Поработав в двух разных командах здесь в Microsoft, я обратил внимание, что сколько людей/команд - столько разных стилей работы. Каждый использует подобранное под себя железо - клавиатуры, мышки, мониторы и т.д. Каждый имеет свой собственный набор программных инструментов, которым мастерски владеет. Естественно, бывают периоды обновления, когда порядок нарушается, но в целом эффективность очень высока.&lt;/P&gt;
&lt;P&gt;Вот несколько полезых комманд/приемов, которые я перенял у любителей командной строки.&lt;BR&gt;Быстрый запуск - Клавиши &lt;STRONG&gt;&amp;lt;Windows&amp;gt;+&amp;lt;R&amp;gt;, cmd&lt;/STRONG&gt;, &amp;lt;Enter&amp;gt;.&lt;BR&gt;Для удобства просмотра длинных распечаток высота буффера экрана всех командных окон установлена в 3000-5000 строк.&lt;BR&gt;&lt;STRONG&gt;cd \&lt;/STRONG&gt; - переход в корень диска&lt;BR&gt;&lt;STRONG&gt;cd ..&lt;/STRONG&gt; - переход на уровень выше&lt;BR&gt;&lt;STRONG&gt;&amp;lt;tab&amp;gt;&lt;/STRONG&gt; - многократные нажатия вызывают циклическую подстановку подходящих имен фаилов и папок в текущую строку. Например, находясь в корне диска C:\ достаточно набрать cd w, &amp;lt;tab&amp;gt;, \sy, &amp;lt;tab&amp;gt;, &amp;lt;tab&amp;gt;, \dr, &amp;lt;tab&amp;gt;, &amp;lt;tab&amp;gt;, \, &amp;lt;tab&amp;gt;, &amp;lt;tab&amp;gt;, &amp;lt;Enter&amp;gt; чтобы оказаться в C:\WINDOWS\system32\drivers\etc (Зачем вам туда переходить - тема для отдельного рассказа). На первый взгляд может показаться не очевидно, но это экономит время, а также избавляет от необходимости помнить точные имена фаилов и папок. &lt;STRONG&gt;&amp;lt;shift&amp;gt;+&amp;lt;tab&amp;gt;&lt;/STRONG&gt; прокручивает имена в обратном порядке.&lt;BR&gt;&lt;STRONG&gt;start &amp;lt;имя файла&amp;gt;&lt;/STRONG&gt; - тоже самое, что щелчок на файле в проводнике. Запускает приложение или выполняет ассоцированную с файлом команду.&lt;BR&gt;&lt;STRONG&gt;start&amp;nbsp; .&lt;/STRONG&gt;&amp;nbsp; - открывает текущую папку в проводнике.&lt;BR&gt;&lt;STRONG&gt;cls&lt;/STRONG&gt; - старая как мир команда очистки экрана.&lt;BR&gt;&lt;STRONG&gt;set&lt;/STRONG&gt; - выводит на экран список переменных окружения (по желанию отфильтрованный по шаблону), а также позволяет изменять их значения.&lt;BR&gt;&lt;STRONG&gt;more &amp;lt;имя файла&amp;gt;&lt;/STRONG&gt; - показывает содержимое файла на экране по страничкам (похоже на команду type).&lt;BR&gt;&lt;STRONG&gt;tasklist&lt;/STRONG&gt; - показывает список запущенных процессов (в том числе их идентификаторы PID)&lt;BR&gt;&lt;STRONG&gt;kill &amp;lt;PID&amp;gt;&lt;/STRONG&gt; - аварийно завершает приложение - полезно, например, для зависших программ, и програм, не имеющих пользовательского интерфейса (похожа на команду &lt;STRONG&gt;taskkill&lt;/STRONG&gt;).&lt;BR&gt;&lt;STRONG&gt;shutdown /r /t 60&lt;/STRONG&gt; - перезагружает компютер чере 60 секунд. отменить перезагрузку можно быстренько набрав на клавиатуре: &lt;STRONG&gt;shutdown -a&lt;/STRONG&gt;&lt;BR&gt;&lt;STRONG&gt;ping &amp;lt;домен или IP-адрес&amp;gt;&lt;/STRONG&gt; - проверка соединения с удаленным компютером.&lt;BR&gt;&lt;STRONG&gt;tracert &amp;lt;домен или IP-адрес&amp;gt;&lt;/STRONG&gt; - трассировка канала связи с удаленным компютером&lt;BR&gt;&lt;STRONG&gt;ipconfig /all&lt;/STRONG&gt; - подробная информация о параметрах сетевой конфигурации&lt;BR&gt;&lt;STRONG&gt;exit&lt;/STRONG&gt; - завершение пограммы cmd и закрытие окна командной строки.&lt;BR&gt;&lt;STRONG&gt;&amp;lt;&amp;lt;, &amp;gt;&amp;gt;&lt;/STRONG&gt; - перенаправление текстового ввёда одной программы на вход в другую или в файл. например time /t &amp;gt;&amp;gt; time.txt запишет текущее время в файл.&lt;/P&gt;
&lt;P&gt;Практически любую незнакомую команду можно безопасно запустить с ключом /? чтобы посмотреть ее синтаксис.&lt;/P&gt;
&lt;P&gt;В среде разработки у нас доступно еще очень много других интересных командных утилит, "но мы вам про них не расскажем" :).&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=517240" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/ru/archive/tags/cmd/default.aspx">cmd</category></item></channel></rss>