Тонкости работы в командной строке Windows

Недавно я вырос из лютого эникея в очень большой компании, до скромного сисадмина надзирающего за сетью в 10 ПК. И, как очень ленивый сисадмин, столкнулся с задачами по автоматизации своей деятельности. Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием. И я пошел дальше, и выяснилось, что там, где я раньше писал утилитки на C#, Delphi или громоздкие скрипты с вложенными циклами, можно было обойтись парой команд forfiles или robocopy.
Не буду рассказывать о банальностях, типа о перечислении файлов и папок клавишей Tab. Под хабракатом расскажу о том, что может быть полезно начинающим админам и эникеям.

Горячие клавиши

Начнем с горячих клавиш, ведь сначала необходимо изучить, что нам может дать рабочая среда.

F1 — В консоли эта клавиша работает в точности как и стрелка вправо, т.е. выводит по одному символу из последней введенной (либо выбранной в истории) команды.
F2 + <символ> — Выводит последнюю введенную команду до указанного символа. Например, если последняя введенная вами команда выглядела вот так:
ping 192.168.25.1

то после нажатия комбинации клавиш F2 + 5 вы получите:
ping 192.168.2

F3 — Выводит последнюю, и только последнюю, в истории команду целиком.
F5 — Выводит последние введенные команды по порядку, также как и стрелка вверх.
F6 — Вставляет символ EOF на текущую позицию командной строки, что аналогично нажатию комбинации Ctrl + Z.
F7 — Диалоговое окно, содержащее историю команд.
image
Alt + F7 — Очищает историю команд.
<символ(ы)> + F8 — Перебирает команды, которые начинаются с символов уже введенных в командную строку.
Если перед нажатием F8 ничего не вводить, то эта клавиша будет работать как и стрелка вверх, но с небольшим отличием — перебор строк будет осуществляться циклично, т.е. после первой команды из списка будет выведена последняя.
F9 + <число> — Вставляет команду из истории под соответствующим номером. К примеру, в ситуации приведенной на скрине выше при нажатии комбинации F9 + 4 в консоли появится:
ipconfig


Операторы командной строки

Я, давным-давно, когда был маленький, даже не представлял как можно работать в консоли без графического интерфейса. Ведь вывод команд порой занимает десятки страниц, а если надо выбрать оттуда какие-то данные, то и постраничный вывод не спасет. Но однажды я поставил на старый комп FreeBSD, открыл хандбук и просто голова кругом пошла от открывшихся возможностей. Там можно перенаправить вывод команды на вход другой команды и это называется конвейером.

Оператором конвейера в *nix и cmd, является символ вертикальной черты.
|

Например, вывод всех текстовых файлов в текущей папке покажет команда
dir | find ".txt"


Оператор объединения команд

&

Пример: Команда1 & Команда2 – сначала выполнятся Команда1, а уже потом Команда2

Оператор И

&&

Пример: Команда1 && Команда2 — Команда2 будет выполняться только в том случае, если произошло успешное выполнение Команды1

Оператор ИЛИ

||

Пример: Команда1 || Команда2 — Команда2 будет выполняться только в том случае, если Команда1 не смогла выполниться.

Для группирования команд используются круглые скобки, примеры:
  • (Команда1 & Команда2) && Команда3 – Если Команды1 и Команды2, выполнятся успешно, произойдет выполнение Команды3.
  • (Команда1 & Команда2) || Команда3 — Если Команды1 и Команды2, не выполнятся, произойдет выполнение Команды3.


Спасибо за внимание! Жду критики и предложений…

UPD1

Для тех, кто не в теме, циркумфлекс(вот этот знак "^") означает нажатие клавиши с Ctrl(^C = Ctrl +C).

^C — Прерывает команду, ну это все знают.
^S — Приостанавливает выполнение команды, а потом запускает.
^I — Аналог Tab, перебирает папки и файлы.
^M — Аналог Enter.
^H — Аналог Backspace.
^G — Написав в пакетном файле команду echo ^G можно пикать системным динамиком(спикером).
(Команды ^I и ^H, получены мной методом «научного тыка», еще есть ^J но не знаю, что она делает)

P.S. Другие тонкости командной строки Windows, уже неоднократно освещались на Хабре. И не вижу смысла копи-пастить.
P.P.S. Ссылки на интересные посты и статьи по другим возможностям командной строки Windows:
Ввод-вывод, циклы, переменные
Работа с массивами
Интереснейший топик по теме
Поделиться публикацией

Похожие публикации

Комментарии 73

    +12
    Хорошо, но мало! )
    Ссылки на «неоднократно освещенные на Хабре тонкости» не помешали бы, не забывайте про забаненых в Гугле! )
      0
      А как выполнить вторую команду независимо от результатов выполнения первой? Т.е. аналог cmd1; cmd2 в bash?
        +3
        cmd1 & cmd2
          +1
          Спасибо, простите за невнимательность.
          0
          *removed*
          +11
          Переходите на powershell. Cmd уходит в прошлое
            +1
            Я только одного не понимаю, почему было не доделать cmd до требуемого уровня? Вместо этого вводят параллельно ещё один инструмент с частью дублирующихся функций. Зачем плодить сущности?
              +1
              Как минимум, это сломало бы обратную совместимость.
                +3
                Затем что в MS такая проблема — вместо апгрейда существующего АПИ пишется новый (или вовсе новый продукт).
                Обратная совместимость = священная корова.
                  0
                  Очень условная корова. На уровне основных команд. Например, в 2k8+ можно настраивать фаервол родной через cmd. Такого не помню в 2k3.
                    +1
                    Это развитие инструментария (утилит), который не зависит от коммандного интерпритатора.
                      0
                      netsh не имеет к cmd никакого отношения.
                        0
                        netsh был и в 2к3 и в xp
                      +5
                      Это разные инструменты. PoSh это скорее более дружелюбная прослойка между .Net и пользователем, чем VBS.
                      По сути есть все фичи ООП, .NET и пр. без лишнего геморроя, который применяют «профессиональные программисты».

                      Работает медленно, но очень функционально благодаря родной поддержке .net. Для «админских тулкитов» самое то.

                      Ну и потом — поддержка многопоточности, цифровых подписей, библиотек («модулей»), стектрейсы, отладка, etc.
                    +2
                    А зачем писать так:

                    dir | find ".txt"

                    когда можно просто так:

                    dir *.txt

                    ?
                      +10
                      Как пример, максимально простой и понятный. Вместо этого, вполне могла быть команда ipconfig | find "IPv4"
                        +1
                        О, благодарю за идею :).
                      +3
                      Набор встроенных в винду команд очень ограничен. Чтобы развязать руки, рекомендую UnxUtils.

                      По теме поста — настоящую мощь cmd придаёт команда for.
                      Про неё можно почитать так: help for
                      Вопреки расхожему мнению, они позволяет выполнять действие не только для каждого файла в папке, но и потенциально заменяет собой линуксовые seq, cat, оператор подстановки результата выполнения команды. Синтаксис кривоват, но это работает.
                        +2
                        В статье упомянута команда forfiles, для работы с файлами она лучше подходит, чем простой for. А для копирования лучше robocopy — это настоящий комбайн.
                          0
                          Ещё могу порекомендовать NirCmd — www.nirsoft.net/utils/nircmd.html
                          Куча всяческих функций, доступных из ком. строки — от регулировки громкости до манипуляций с окнами и пр.
                          0
                          cmd — это, конечно, здорово, но как же трудно живётся без стандартных хоткеев копирования и вставки.
                            +3
                            СonEmu Вам в помощь!
                              0
                              Спасибо!
                              +1
                              mridgers.github.io/clink/ вам в помощь. Без этого уже совсем отвык пользоваться cmd.
                                0
                                Во, вроде бы то, что нужно. Спасибо.
                                0
                                оу, а что творится в core версиях windows server ;)
                                +3
                                Этот топик не будет полным без отсылки к этой статье :)
                                Урок bat-аники
                                  0
                                  Где в справочной документации можно прочитать о сабже?
                                    0
                                    Генератор хелп файлов:
                                    FOR /F "usebackq tokens=1 eol= skip=1 delims= " %a IN (`help^|findstr /B /V /C:" " `) DO help %a >%a.txt
                                    Наплодит кучу txt файлов с описанием всех стандартных команд.
                                      +1
                                      Вы неправильно меня поняли.
                                      Описание команд есть и на течнете и в msdn, а вот хоткеев я там не видел.
                                    +6
                                    маловато, я ожидал что-то вроде вот этого:

                                    for /f %%z in ('dir %1 ^| find /i ".rar"') do set idate=%%z
                                    for /f "tokens=1-6 delims=/" %%A in ('echo %idate%/%date%') do set /a t=%%F*1461/4-%%C*1461/4+%%E*1461/48-%%B*1461/48+%%D-%%A
                                    if %t% gtr %2 (del /q %1)
                                    


                                    скрипт удаляет архивы в папке %1, старшие %2 дней.
                                      +1
                                      т.е. не так, %1 это проверяемый файл… этот скрипт вызывается из другого
                                      for %%f in ("%archive%\*.rar") do call checkfile.bat "%%f" 30
                                      

                                      %archive% — папка с архивами.
                                        0
                                        у Вас тоже не очень эффективно, checkfile.bat можно процедуру вынести.
                                          0
                                          извиняюсь, затупил) ниже вполне работоспособное и простое решение
                                        0
                                        forfiles /P %1 /M *.rar /P C:\Your_Directories /D %2 "cmd /C del /Q @path"
                                        Имхо, так читабельнее выглядит. Неуверен в правильности синтаксиса ключа /D Раньше я тоже таких монстров создавал, собственно мое знакомство с этой командой и сподвигнуло меня на написание этой статьи.
                                          0
                                          а тут /P — 2 раза написал
                                          так надо: forfiles /P %1 /M *.rar /D %2 «cmd /C del /Q path»
                                            0
                                            но forfiles и robocopy нету в XP по умолчанию… )
                                              0
                                              XP R.I.P. — позавчера, а для кого-то и вчера, нас покинула замечательная ОС.
                                              Согласен, там, только так и реализовывать.
                                          +2
                                          Чем такую жесть писать и ещё потом отлаживать, я лучше напишу скрипт на Python. И пофиг, что он будет длиннее, уж по крайней мере будет понятно, что происходит.
                                          Если же есть условие использовать только то, что в системе есть «из коробки», то JScript сойдет. Конечно, JavaScript и его диалекты — не фонтан, но всяко лучше, чем cmd.
                                            0
                                            Согласен, это перебор. Просто я взялся за его написание не для того чтобы решить какую-то задачу, а чтобы проверить, можно ли это реализовать с помощью CMD. Как развлечение..)
                                            Ведь CMD здесь по сабжу, а JS нет.
                                          +7
                                          Полгода назад я еще не знал, что в командной строке Windows есть конвейеры. Это стало первым шокирующим открытием.

                                          Что? Серьёзно?
                                          К вашему сведению, автор, конвейеры и в COMMAND.COM работают.

                                          Оператором конвейера в *nix и cmd, является символ вертикальной черты.
                                          |

                                          Например, вывод всех текстовых файлов в текущей папке покажет команда
                                          dir | find ".txt"


                                          Со справкой из википедии и одной картинкой — и инвайт из песочницы?
                                          Серьёзно, хабр?
                                            +6
                                            Пруфы, пожалуйста на данный текст в википедии.
                                            Во-первых, не в картинках дело, или хабр из вотчины инженеров превратился уже превратился в засилье дизайнеров, менеджеров и писателей? Что как ни печально, имеет место быть. И что дало бы использование картинок на каждый чих в консоли? Картинка в том месте, где она действительно нужна. Мне как чистому технарю, даже написание этого текста, нелегко далось.
                                            Во-вторых, вся информация максимально разжевана, пропущена через себя. Например, из аналогичных статей можно узнать. Что есть клавиша F4, но она не работает, по крайней мере в Windows 7/8/2008r2.

                                            Заранее извиняюсь, что перехожу на личное.
                                            А как Вы инвайт на Хабр получили? Компания подарила? А слабо из песочницы, первой статьей?
                                            У Вас 2 статьи, одна из которых написана другим человеком, а вторая перевод. Создайте что-нибудь свое, тогда нам будет о чем поговорить.
                                            В каждом комменте вне своих топиков, Вы пытаетесь кого-нибудь обвинить. Не нравится статья? Ставьте минус и проходите мимо, и знайте я против присутствия таких людей этом портале.
                                            P.s. Знаю тут не любят споры и готов укатиться в ro.
                                              0
                                              Понимаю Вашу эмоциональность, но можно было бы более целостно написать саму статью. Например, как упоминали выше, написать про FOR, описать еще полезные утилиты cmd. А так довольно скудно получилось.
                                                0
                                                Ответил на подобный вопрос тут. Знаю что скудно, но я против написания того, что уже было написано. Так же в конце поста указаны несколько интересных ссылок по теме.
                                                  0
                                                  Но вы ведь статью пишите, а не собрание ссылок)
                                                –1
                                                … хабр из вотчины инженеров превратился уже превратился в засилье дизайнеров, менеджеров и писателей…
                                                Что, как ни печально, имеет место быть.
                                                Ну так, может, проходите мимо?

                                                Во-вторых, вся информация максимально разжевана, пропущена через себя.
                                                Ваша статья на экран с четвертью, состоящая из общеизвестных фактов, выжимки из справки да одного скриншота, тянет на пятнадцатую часть инвайта. Тут разжёвывать-то нечего — вы изложили то, что айтишник узнаёт в первые два года занятия IT (ну например, к чему опять про конвейеры и &&, &, ||? Или замечание про ^? Не ошиблись ресурсом?).
                                                — — — — —
                                                Заранее извиняюсь, что перехожу на личное.
                                                Ради бога, только ответтье сперва, а зачем?

                                                В каждом комменте вне своих топиков, Ввы пытаетесь кого-нибудь обвинить.
                                                Во-первых, давайте говорить предметно: где я неправ?
                                                Во-вторых, комментарии типа «плюсую», «первыйнах» и подобные, не содержащие пользы, или обоснованного личного мнения тут, ну… по опыту, не приветствуются.

                                                А как Вы инвайт на Хабр получили? Компания подарила?
                                                Нет.

                                                У Вас 2 статьи, одна из которых написана другим человеком
                                                Нет. Пост-анонс IRC-канала #habrahabr в сети Irc2P написан мною.

                                                А слабо из песочницы, первой статьей? Создайте что-нибудь свое, тогда нам будет о чем поговорить.
                                                Что это такое? Сначала добейся? Право, не надо.
                                                Если бы я ставил себе целью получить инвайт, и был бы готов тратить на это значительное время, я бы с лёгкостью сгенерил что-нибудь, похожее на вашу… э-э-э… статью (или чего похуже). А потом бы спрятал пост. Но.

                                                Но писать плохие статьи только для того, чтобы получить инвайт я себе не позволил. Ещё раз. Ваш пост — далеко не техническая статья для хабра, а статья-получить-инвайт-чтобы-потом-писать-комментарии.

                                                Я выполнил и опубликовал перевод после того, как получил инвайт (а хабр я читаю уже года четыре, или даже больше), и это позволяет говорить хотя бы о том, что действие сие было сделано бескорыстно, с искренним желанием поделиться чем-нибудь крутым с сообществом Хабрахабра.

                                                Именно поэтому хочется, чтобы статья выглядела красиво, была хорошо написана, чтобы в ней не было пунктуационных и орфографических ошибок, чтобы её было приятно читать, чтобы оформление и форматирование было согласованным и подчёркивало содержание. Чтобы потом кто-нибудь не зашёл в Хабрацентр->Его->Посты и не увидел там всякое.

                                                P. S. Постскриптум пишется именно так: большая P, точка, пробел, большая S, точка, пробел, а затем то, что вы хотите сказать.
                                                  –2
                                                  айтишник узнаёт в первые два года занятия IT (ну например, к чему опять про конвейеры и &&, &, ||? Или замечание про ^? Не ошиблись ресурсом?

                                                  Не ошибся, я в ИТ и давно и недавно, с одной стороны я в 3 классе на Бэйсике картинки рисовал. Потом отучился на техника-программиста. Потом 5 лет по жизненным обстоятельствам не мог ИТ заниматься. 2 года назад вернулся эникеем. Да местами мои знания скудны и местами чудовищно устарели. Но я за свою жизнь видел 2 человек, которые окончив институт, в консоли могли больше, чем пропинговать хост. Конечно, есть и исключения, например, на то время 16 летняя девочка, которая в линуксах шарила 3 года назад, лучше чем я сейчас. Нередко встречаются «специалисты» с многолетним опытом, но которые просто из-за незнания основ и банальностей просто не знают, как можно делать. Например, мой предшественник на работе… При устройстве мне говорили, что он «super pupper drupper», а я, спустя месяц, думаю, что на меня молиться скоро будут.

                                                  Признаю, статья вышла, слишком простой для ресурса гиков. С другой стороны, почти 5 сотен добавивших в избранное, намекают, что статья не так уж и неудачна, даже если и не содержанием, а комментариями.

                                                  Пост-анонс IRC-канала, тут извиняюсь, наговорил.
                                                  А как Вы инвайт на Хабр получили? Компания подарила?

                                                  Этот вывод я сделал из того, что Вы подписаны на «Бессвязный Девелоп», а инвайт Вами получен от автора блога этой компании. Где я ошибся?
                                                  Но писать плохие статьи только для того, чтобы получить инвайт я себе не позволил. Ещё раз. Ваш пост — далеко не техническая статья для хабра

                                                  Моя статья плохая? Она в плюсах, я считаю это неплохим индикатором «хорошести» статьи. Это не техническая статья? А какая гуманитарная? Жду конструктивную аргументацию.
                                                  статья-получить-инвайт-чтобы-потом-писать-комментарии

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

                                                  Неплохая статья, что Вы увидели плохого, в том, что подросток строит девайс на ардуине. Он же не пиво пьет в подъезде? А в комментариях, ему взрослые дяди укажут правильный путь. Хабр и не должен быть ресурсом исключительно для гениев харда и софта с IQ за 180 и 40-летним опытом. Тут также должны быть и те кто только начал свой путь.

                                                  В таком случае, вот мой вопрос Вам. А что для Вас хорошая статья?

                                                  P.S. Погуглил, проверил, исправил. Спасибо.
                                                    –2
                                                    Признаю, статья вышла, слишком простой для ресурса гиков.

                                                    <...>
                                                    статья-получить-инвайт-чтобы-потом-писать-комментарии
                                                    как ни крути, а Ввы правы. Я себя не вижу писателем, а возможность общаться в сообществе для меня много значит.

                                                    Спасибо, это — почти всё, что я хотел от вас услышать.

                                                    Продолжать дискуссию я буду только для того, чтобы не показаться невежливым, и чтобы не оставить вас с висящими в воздухе вопросами.

                                                    Не ошибся, я в ИТ и давно и недавно, с одной стороны я в 3 классе на Бэйсике картинки рисовал. Потом отучился… <...>… а я, спустя месяц, думаю, что на меня молиться скоро будут.
                                                    А это уже похоже на «ты где служил?» с примесью всё того же «сперва добейся». Но, впрочем, ладно.

                                                    Этот вывод я сделал из того, что Ввы подписаны на «Бессвязный Девелоп», а инвайт Ввами получен от автора блога этой компании. Где я ошибся?
                                                    В логическом переходе. Чтобы получить инвайт от автора корпоративного блога компании X, на который ты подписан, не обязательно работать в компании X. Да, «компания» может «подарить» инвайт кому-нибудь, даже не работающему в ней, но это, упс, опять же не является обязательным следствием.

                                                    Моя статья плохая?
                                                    Я уверен, что да.

                                                    С другой стороны, почти 5 сотен добавивших в избранное, намекают, что статья не так уж и неудачна, даже если и не содержанием, а комментариями.

                                                    <...>

                                                    Она в плюсах, я считаю это неплохим индикатором «хорошести» статьи.
                                                    Вот из-за этого-то я и вопрошал "Серьёзно, хабр?". Я удивлён и изрядно расстроен, что статьи, подобные вашей и «девайс на ардуине от подростка», оказываются внезапно весьма удачными, и получают общественное признание и плюсы, когда в сто (и я не преувеличиваю) раз более сильные вещи получают по десять-двадцать плюсов, и ни одного инвайта для автора, безусловно могущего быть ценным хабраюзером.

                                                    Именно по этой причине я убеждён, что сообщество не в состоянии верно оценить «хорошесть» статьи. Нужны другие механизмы, потому что уже скатились.
                                                    К вашему сведению, количество добавивших в избранное может обозначать (и очень, очень часто именно это и обозначает!) количество людей, оставивших статью на прочтение позже. Могу привести ссылки на посты, авторы которых высказывают схожие убеждения (и про избранное, и про плюсы, и про скатились).

                                                    Неплохая статья, что Вы увидели плохого, в том, что подросток строит девайс на ардуине. Он же не пиво пьет в подъезде? А в комментариях, ему взрослые дяди укажут правильный путь. Хабр и не должен быть ресурсом исключительно для гениев харда и софта с IQ за 180 и 40-летним опытом. Тут также должны быть и те, кто только начал свой путь.
                                                    Я убеждён, что в таком возрасте адекватное самосознание уже является нормой, и человек не должен был бы допустить выкладывание подобного (существует незначительная вероятность того, что я не разглядел микроскопической толщины троллинг всея хабрахабра, и если это так, то я преклоняюсь перед автором до полу).

                                                    Не подумайте, что я отношусь к вам плохо как к человеку, я и сам разделяю ваше мнение — для меня ценно участие и общение в Сообществе, однако же обратите внимание, что в вашем арсенале пока есть только эта статья, и она единственная.
                                                      –2
                                                      Я понял вашу точку зрения(с маленькой буквы, насколько я помню пишется только во множественном числе).
                                                      Приведу свои комменты с тостера, где рассуждал о несовершенстве механизмов регистрации на хабре, написанные через сутки после написания сей статьи в «песочницу».
                                                      Имхо, хорошо что доступ на сайт настолько ограничен, но имхо инвайты не вариант(т.к. можно банально купить), лучше бы сделали набор тестов для инженеров, пусть и достаточно суровый, например, сделал пару любых тестов, если не сдал кулдаун на пару недель. Пустили в песочницу написать, допустим 3 статьи, с минимальной модерацией. Если в плюсы ушло, полноценный аккаунт.


                                                      10 способов получить инвайт
                                                        –2
                                                        10 способов получить инвайт
                                                        Не поверите, читал.

                                                        с маленькой буквы, насколько я помню пишется только во множественном числе
                                                        Нет, это заблуждение. Вот начало знатного срача «вы» vs. «Вы» в комментариях — пожалуйста, ознакомьтесь, и обратите внимание на оценки комментариев при ознакомлении. ;)

                                                        Я понял вашу точку зрения
                                                        Я рад.
                                                          –2
                                                          Имхо, более авторитетный портал, в плане обсуждения правил русского языка.
                                                          Заметки на полях: вы или Вы при обращении к одному лицу?

                                                          Употребление местоимения вы вместо ты при обращении к одному лицу само по себе уже представляет проявление уважительного отношения к этому лицу. Окончательное решение о написании Вы с прописной (для подчеркивания этого уважительного отношения) принимает автор текста.
                                                            –3
                                                            Опять??? И тут??? Вы дискуссию по моей ссылке не прочитали????
                                                +4
                                                Со справкой из википедии и одной картинкой — и инвайт из песочницы?
                                                Серьёзно, хабр?

                                                хабр, полагаю, сегодня слишком занят обновлением своих SSL-библиотек, все основные силы брошены туда;)
                                                +1
                                                2014 год? cmd.exe вместо Powershell? are you serious?
                                                  +2
                                                  А как же условные рефлексы?
                                                  Я до сих пор после win+r на автомате часто пишу cmd вместо powershell. В принципе, для простых-то команд, типа роута или конфигурирования сетевого интерфеса — без разницы.
                                                    +1
                                                    Согласен, Powershell для большинства команд избыточен(зачем туда заходить, чтобы пропинговать хост), первый его запуск занимает несколько секунд, ввод команды гораздо более объемный. И создавая .bat файл я уверен, что он в 99% запустится на WinXP, а в 80% и на MS-DOS. Тогда как, с Powershell, еще нет устоявшейся версии, заходя на машину не уверен, 1 версия или 3-я версия среды установлена, и от этого многое зависит.
                                                      0
                                                      А у нас в команде чуток проще — мы пользуемся профилями PowerShell и ISE. Куча готовых модулей «под себя».

                                                      Например, подпись файла цифровым сертификатом.
                                                      Invoke-SignFile -Path c:\temp\file.msi
                                                      При этом он сам посмотрит сертификаты пользователя, найдет сертификат для CodeSigning, проверит его валидность и подпишет файл.

                                                      Или создание учетки для аутсорсера:
                                                      New-ADOutsourceUser -FullName "Иванов Петр Яковлевич" -ExpirationDate "2013-02-23" -TicketID 12345 -ResponsibleEmployee "Петров петр сергеевич"
                                                      Сформирует логин вида O_PYaIvanov, создаст учетку AD в нужном контейнере, поставит ExpDate учетке, поставит в информацию номер тикета, по которому учетка создана, поищет в AD по ФИО учетку сотрудника, который курирует аутсорсера, пропишет его и его SID в Descripion.

                                                      Тогда как, с Powershell, еще нет устоявшейся версии, заходя на машину не уверен, 1 версия или 3-я версия среды установлена, и от этого многое зависит.
                                                      В этом то и суть, PoSh подразумевает что вы все масимально делаете из одной точки. PSRemoting. И обычно там стоит топовая ОС и топовая версия PoSh по той причине, что некоторые модули (например, работа с DNS) зависят и от того и от другого.
                                                        0
                                                        Именно после того, когда я отказался от cmd и заставлял себя любое телодвижение производить в PowerShell, тогда я начал к нему привыкать :)
                                                        Т.к. (конечно, все в курсе), что все эти команды работают и в PowerShell, я не вижу смысла осознано использовать cmd, когда есть старший брат. Если вы еще им не пользовались в полную силу — попробуйте. Впечатления от cmd вообще сойдут на нет :)

                                                        Для автоматизации на WinXP больше предпочитаю WSH.

                                                        За статейку спасибо — интересно!
                                                    +4
                                                    Тонкости работы в командной строке Windows

                                                    Не сочтите за грубость, но статья очень слабая для такого заголовка.
                                                      0
                                                      Было бы на что обижаться. Здоровая критика всегда полезна. Я описал именно тонкости работы в среде, которые могут быть неизвестны многим, основа основ. Которая поможет людям, повысить свою эффективность, или даст понять, что командная строка не такая убогая, какой кажется на первый взгляд. Я не писал того, что можно нагуглить запросами, «секреты работы в cmd» и подобными. А справку по командам, например IF или FOR, поможет найти ключ /?. Запуск функций из rundll32, по-моему скромному мнению, тоже не сильно интересен и еще во времена Win98, активно писались статьи на эту тему.
                                                      +2
                                                      раз уж решили откопать cmd, то он неотделим от командных файлов, как карпускулярно-волновая теория, и все тонкости imho только для скриптов нужны; для обычной жизни понаделали уже столько файловых менеджеров, что голая командная строка в винде практически мертва. Лично я считаю ее убогой, теперь уже навсегда.

                                                      с учетом паталогической привязанности виндов к расширениям файла, считаю нераскрытой тему тильда-переменных
                                                      %~n1 Expands %1 to a file name
                                                      там их ещё с дюжину: www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true
                                                      use case: пакетное переименование файлов или операции преобразования форматов какой-нибудь утилитой командной строки

                                                      Заковыристые for — это тонкости.
                                                      Те же упомянутые тильды — может быть, но не настаиваю.
                                                      Заковычивание и расковычивание длинных имен — вероятно тоже тонкости (увы, из них состоит большинство наших данных, и не очень продуманные скрипты спотыкаются; я это считаю самым идиотским механизмом, когда-либо придуманным для командной строки, но M$, как известно, не использует стандарты, он их создает).
                                                      А ещё: запуск и синхронизация start /wait, call, какой-нибудь запрос Yes/No от юзера…

                                                      Но при всём уважении, большей части Вашего поста скорее подойдет название «Возможности командной строки Windows, без которых можно прожить еще не один релиз»…

                                                      лично я старомоден, предпочитаю FAR Manager и немного Cygwin, хотя пора давно PowerShell освоить, да все не надо

                                                      а русский язык у Вас вроде неплох, дружище, хотя порой чуть подрезаете предложения; так загрузите его достойной работой!

                                                      всех благ

                                                      PS
                                                      Если Вы хотели заголовком сюда натянуть тонкостей от других коллег, то удалось :)
                                                        0
                                                        В повседневной работе в Windows, кроме пакетных файлов, командная строка почти и не нужна. Для чего нужны пакетные файлы? Расскажу на примере из жизни, допустим у меня на работе задача, каждый день делать бэкапы, рассовывать их по папкам и загружать их в программы, предыдущий админ тратил на это полчаса каждый день. Я в первый же день работы потратил полчаса, и написал скрипт, который все тоже делает, с моим минимальным вмешательством за 6 минут. Если бы разработчик нашего ПО не был бы «редиской», и не отказал бы в возможности автоматизации загрузки файлов в ПО, делал бы в 3 минуты. В итоге полчаса жизни, каждый день, сэкономлено.
                                                        Но при всём уважении, большей части Вашего поста скорее подойдет название «Возможности командной строки Windows, без которых можно прожить еще не один релиз»…

                                                        Да можно, но статья изначально не ориентировалась на профессионалов, которые 20 лет в консоли живут. Если она хоть кому-то поможет оптимизировать свой рабочий процесс и спасет его от нагромождения IF, я буду рад.
                                                        У меня тоже FAR — один из главных рабочих инструментов, хотя я его возможности максимум на 20% освоил.
                                                        Правила русского языка я уже не помню много лет, пунктуацию вообще никогда хорошо не знал. Ставя каждую запятую, я всегда сомневаюсь, а нужна ли она. Пишу интуитивно, виной всему тонны прочитанных книг в детстве. А подрезаю приложения из врожденной лени.
                                                        Предлагаете, корректором работать? Писать статьи с художественными элементами, не мое. Я за всю учебу в школе, ни одного сочинения не смог написать сам.
                                                        По поводу тонкостей, я думаю, что так и задумывался хабр. Если что-то человек не написал, ему: напомнят; подскажут; ссылочку дадут. Для меня не столько важны знания, сколько путь к ним. Не надо разжевывать людям все до мелочей. Надо дать толику знаний и заинтересовать, в итоге он сам все узнает.

                                                        Спасибо за конструктив.
                                                          +1
                                                          у меня на работе задача, каждый день делать бэкапы… Я в первый же день работы потратил полчаса, и написал скрипт...
                                                          Скриптовой язык CLI, как пластилин или эпоксидная смола, нужен для склейки более тугих и технологичных, но узкоспециализированных компонентов ОС. Я в свое время, когда переключался с нескольких лет непрерывного Линукса на винду, сразу понял, что возможностей этого COMMAND.COM 2.0 мне хватит разве что на склейку двух картонок. Поэтому взял Windows Script Host (ха-ха, прямо за мной коммент был) в варианте JavaScript и написал обёртку для NTBACKUP, которая организовывала ротацию файлов (это когда можно поднять не только последний, но еще и пред-пред-предпоследний вариант, например). Причем сделал её на ООП (не смейтесь, в JS есть имитация классов), и NTBACKUP можно было заменять при желании на архиватор, шифровальщик и т.д. Сейчас для бэкапа рекомендовал бы обернуть какой-нибудь бесплатный 7zip, а если нужна реальная защита (или хранение в облаке), то еще и добавил туда вызовы GNUPG на асимметричном ключе… Чёрт, спасибо за идею, может быть сложу пост на эту тему, если откопаю свою скриптину.

                                                          Правила русского языка я уже не помню много лет, пунктуацию вообще никогда хорошо не знал. Ставя каждую запятую, я всегда сомневаюсь, а нужна ли она. Пишу интуитивно, виной всему тонны прочитанных книг в детстве. А подрезаю приложения из врожденной лени.
                                                          Предлагаете, корректором работать? Писать статьи с художественными элементами, не мое. Я за всю учебу в школе, ни одного сочинения не смог написать сам.
                                                          У Вас признаки явления, называемого в народе «врожденная грамотность». Нет у меня ни полномочий, ни желания Вам на дверь показывать. Подумайте, чем Вы так зацепили хабранарод и выскочили в суточный топ: технической подкованностью? Полнотой информации? Её актуальностью? Вряд ли… Вот русским языком своим и зацепили. Человек — это сложное устройство, подчиняющееся определенным законам: ими пользуются как хорошие, так и плохие люди. На хабре поощряется светлая сторона. Можно быть технарём, можно быть писателем, а лучше и тем, и тем. Раскройте какую-нибудь тему, м.б. эту же, но только следите, чтобы наш айтишный стакан был всегда полон не только хорошим русским языком, но и хорошей информацией…

                                                          удачи, коллега

                                                          PS
                                                          А еще сыграйте со мной в игру: habrahabr.ru/post/218387/
                                                          +2
                                                          для обычной жизни понаделали уже столько файловых менеджеров, что голая командная строка в винде практически мертва.

                                                          Кроме «обычной жизни», бывают ситуации типа отладки/траблшутинга на машине клиента, на боевом сервере и т.п.
                                                          Туда свой любимый менеджер не затащишь — надо уметь работать с тем, что уже есть.
                                                            +2
                                                            на боевом сервере
                                                            в своей зоне комфорта (обложившись менеджерами) и без постоянной практики всё это быстро ржавеет, а отлаживать что-то на голом боевом сервере я пожелаю разве что врагу, хотя сам это вынужден делать. К счастью, нечасто.
                                                            +1.
                                                          +2
                                                          Материала действительно маловато, зато есть комменты! Которые шикарны )
                                                            0
                                                            Я все же рекомендую не отбрасывать в сторону vbs и hta. Замечательно мощная вещь. Можно написать консольный скрипт, через пару минут прикрутить ему GUI, использовать разнообразные ActiveX объекты.
                                                              0
                                                              Может, это попахивает ненормальным программированием, но у WSH в Windows есть весьма существенные преимущества:
                                                              — начиная с Windows 98 и заканчивая 8.1 есть из коробки;
                                                              — для разработки и отладки достаточно блокнота;
                                                              — при необходимости имеются компиляторы;
                                                              — разработка GUI упрощена за счет использования в HTA файлах HTML;
                                                              — есть доступ практически ко всем функциям ОС через ActiveX и WMI;
                                                              — разрабатывать можно довольно сложные утилиты, ничуть не уступающие, а то и превосходящие по функционалу скрипты *nix скрипты.
                                                                0
                                                                Я в свое время хотел изучить эту тему, но после раздумий, сделал выбор в пользу Powershell. Да и проще MSVS Express запустить.
                                                                  0
                                                                  Я в последствии с VBS(WSH) перешёл на (прости господи) PHP по следующим причинам:
                                                                  1. Кросплатформенно — да, я разрабатываю на win потом переношу на Linux
                                                                  2. Есть отладка (vbs конечно можно отлаживать и в Excel, чем я в своё время и занимался), но в PHP есть IDE на любой вкус.
                                                                  3. Много наработок и библиотек
                                                                  4. UTF8, твою мать!
                                                                  5. Как и всё у M$, VBS(WSH) НЕДОДЕЛАН (жадность в регэкспах, неперехватываемые исключения в ADODB и т.п.)
                                                                  6. Нужен GUI — так нарисуй html-страничку.
                                                                0
                                                                Довольно давно наткнулся на сайт ss64.com/nt/, где перечислены команды всякие полезности окружения CMD.EXE. Когда всплывает необходимость, иду за подсказкой туда.
                                                                  –1
                                                                  Попробуйте Far manager 3-й версии (там удобное автодополнение и история команд):
                                                                    +2
                                                                    иногда это удобное автодополнение жутко раздражает до желания его выключить, к сожалению.

                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                  Самое читаемое