Microsoft призвала пользоваться PowerShell вместо CMD

0. Infostart 04.06.20 09:56 Сейчас в теме
Microsoft порекомендовала пользоваться инструментом PowerShell вместо классического интерпретатора CMD (cmd.exe). Разработчики не будут заниматься доработкой CMD, но оставят его в системе для обеспечения совместимости.

Перейти к новости

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. jONES1979 04.06.20 10:51 Сейчас в теме
...Когда узнали об "1С:Исполнителе" и решили прокатиться на волне хайпа, чтобы напомнить о своём существовании.
Артано; tindir; semagin@gmail.com; ipoloskov; Ferroks; tsukanov; 9-pm; borodatii; portwein; artbear; VitaliyCeban; +11 Ответить
2. tsukanov 05.06.20 12:57 Сейчас в теме
powershell один из самых недооцененных языков/оболочек

То что до сих пор его игнорируют и используют CMD - это одна из самых удивительных загадок этой планеты.
Gureev; Jokemas; semagin@gmail.com; +3 Ответить
3. oldcopy 126 05.06.20 14:39 Сейчас в теме
(2) Потому что MS поломала совместимость с CMD. Простой пример на скриншоте, в CMD этот же код отработает без проблем.
Прикрепленные файлы:
4. tsukanov 05.06.20 15:18 Сейчас в теме
(3) Не понял, а зачем тут совместимость? Это другая оболочка и другой язык. Конечно она не будет совместима.
5. oldcopy 126 05.06.20 15:53 Сейчас в теме
(4) Тогда чему вы удивляетесь? Есть масса задач, для которых уже наработаны решения на CMD и которые не будут работать в PS. Выше - простой пример. И мы даже не говорим о скриптах, PS не получится использовать даже как командную оболочку.

В том же Linux я могу запустить софт в любой командной оболочке с одним и тем же набором ключей и это будет работать везде. PS не позволяет запустить 1С через CLI в принципе и если мне это нужно для моих задач, то я буду продолжать использовать CMD или перейду на альтернативные решения - тот же OneScript.

Еще один минус PS - это его многословный синтаксис, хорошо если вы работаете в IDE c автодополнением, а если вам нужно поправить скрипт на коленке? И под рукой только блокнот? Либо выполняете задачи обслуживания или настройки в командной строке?
frkbvfnjh; starik-2005; +2 Ответить
7. tsukanov 05.06.20 16:14 Сейчас в теме
(5)
Еще один минус PS - это его многословный синтаксис, хорошо если вы работаете в IDE c автодополнением


Хотите я вам мозг сломаю? В повершеле автодополнение работает прямо в консоли по привычному ctrl+пробел. Причем такого крутого автодополнения мало где встретишь.

Внезапно, да? )
Gureev; semagin@gmail.com; +2 Ответить
8. oldcopy 126 05.06.20 18:33 Сейчас в теме
(7)
Хотите я вам мозг сломаю? В повершеле автодополнение работает прямо в консоли по привычному ctrl+пробел. Причем такого крутого автодополнения мало где встретишь.


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

(6)
Ваш пример говорит только о том, что вы не приложили элементарных усилий и не загуглили как это делается в повершеле.


Если у вас много свободного времени - ради бога. Данный пример я привел просто для того, чтобы показать, что привычный синтаксис CMD в PS не работает. Т.е. просто так взять и перейти с CMD на PS не получится. Нужно что то искать, адаптировать и т.д. и т.п. Это все можно, но зачем? Тем более что указанная конструкция взята из официальной документации 1С.
frkbvfnjh; +1 1 Ответить
9. tsukanov 05.06.20 21:17 Сейчас в теме
(8)
Это все можно, но зачем?

Не знаю. Этот вопрос для меня звучит типа "Зачем нужен огонь?".
С одной стороны можно было бы ответить про приготовление пищи, отпугивание хищников и обогрев холодными ночами. С другой стороны вижу что вам сложно покрутить палочки. Действительно, зачем этот огонь? )
10. starik-2005 2180 05.06.20 21:51 Сейчас в теме
(9)
Этот вопрос для меня звучит типа "Зачем нужен огонь?".
Так есть bash - зачем все эти PS от M$? Все сделали сто лет назад почти, все работает, конвейеры пашут, перенаправляя вывод одного приложения в другое. Роботам не нужен интерфейс, и до M$ это дошло совсем недавно, ибо удел мешков с костями - планшеты и телефончики, а потом очечки, в которых повершелам делать нечего. Они уже просрали мобильный сегмент.
SerVer1C; oldcopy; +2 Ответить
12. oldcopy 126 05.06.20 22:02 Сейчас в теме
(10) Даже больше, я могу всю жизнь работать с bash, потом сесть за консоль с zsh и спокойно работать дальше, синтаксис взаимодействия с системой не поломается, я как работал в консоли, так и продолжу, без всякого гугления как запустить мне тут привычное действие. А вот пересев с CMD на PS такое сплошь и рядом. Поэтому CMD как был, так и остался, а PS используется наравне с ним, для многих иных задач, но заменить CMD он не может.
24. Jokemas 135 09.06.20 18:01 Сейчас в теме
(12) Это вопрос лени конкретного человека. Я все свои скрипты под CMD переписал на PowerShell и больше к CMD не подхожу. Все, что реализовано на CMD можно реализовать на PowerShell. Не вижу смысла спорить.

Мне эта тема напоминает спор древний, что винда 7 умрет, а XP будет жить вечно. Ну и где 7-ка с XP?
14. tsukanov 05.06.20 22:21 Сейчас в теме
(10)
Все сделали сто лет назад почти, все работает, конвейеры пашут, перенаправляя вывод одного приложения в другое.


По этой фразе уже понятно что вы вообще не представляете что такое повершел.

ps А в целом спасибо, коллеги. Благодаря вашим комментариям загадка разрешилась.
15. starik-2005 2180 05.06.20 23:01 Сейчас в теме
(14)
По этой фразе уже понятно что вы вообще не представляете что такое повершел.
А что, в повершеле не пашут конвейеры? Все так плохо?
16. tsukanov 05.06.20 23:13 Сейчас в теме
(15) Пашут. Но это совершенно не то что в bash. Из другого теста система совершенно.
17. starik-2005 2180 05.06.20 23:30 Сейчас в теме
19. tsukanov 06.06.20 00:13 Сейчас в теме
Пардонте что вопросом на вопрос, вас в гугле забанили?
Что за мода в 2020 году делать вид что информация недоступна?
32. tsukanov 15.06.20 20:51 Сейчас в теме
(3) Для тех кого интересует почему эта "проблема" совершенно надумана: в этой строке не хватает всего одного символа "&"
& 'C:\Program Files\1cv8\common\1cestart.exe' enterprise /f 'C:\1CDB\dev_demo' /n administrator


Это если хочется просто быстро набрать в консоли.

Если пишете скрипт, то в таком стиле писать в повершеле некрасиво.
Есть более читаемые способы с переменными, форматированием и мощными командами:
$1c = 'C:\Program Files\1cv8\common\1cestart.exe'
$параметры =
     'enterprise',
     '/f "C:\Users\tsukanov\Documents\1CDB\dev_demo"',
     '/n administrator'
start $1c $параметры

При этом вы имеете еще кучу параметров для контроля запуска (видеть можно через ctrl+space)


Что умеет start (это синоним для Start-Process) можно легко загуглить.
Либо просто набрать в консоли:
Get-Help Start-Process -Online

или на синонимах:
help start -online


Не сложно, правда?
Для многих команд есть синонимы.
Увидеть их можно с помощью команды:
Get-Alias

https://i.imgur.com/yccPjPh.png

Не хватает какого-то синонима? Добавьте нужный и дело с концом.

Что еще критикуют консерваторы? Длинные параметры у команд?
Так их можно не указывать. Или указывать одну букву.
#без имен параметров
start $1c $параметры
#с именами
start -FilePath $1c -ArgumentList $параметры
#с именами по одной букве:
start -f $1c -a $параметры


Ну и самое главное: никакая другая оболочка по мощности и рядом не валялась.
У вас полный доступ к .NET. Код частично можно даже на c# вставлять.

Немного гуглежа и вы обнаружите что он может все что вам взбрендится.
GUI? пожалста
Фоновые задания? пожалста
JSON, CSV, XML? пожалста
Регулярки, сопоставление с образцом, шаблоны? имеется
Удобный доступ к MS SQL? конечно есть
Реестр? ага
Доступ к сервисам типа AWS? угу
Отображение прогресса операции в консоли? с пол пинка

Перечислять что умеет повершел не имеет смысла. На винде он умеет все.

У него есть недостатки как и у любого изделия. Но часто критика вызывает только улыбку.
check2; Gureev; +2 Ответить
33. check2 125 22.06.20 00:36 Сейчас в теме
(3) а так не попробовали ?
 & 'c:\program files\1cv8\8.3.15.1958\bin\1cv8c.exe' ENTERPRISE /S CHECK:1841\cpm.develop /N AutoUpdate /P AutoUpdate

Не очевидно, но работает :)
UPD, не заметил, выше всё написали.
34. starik-2005 2180 23.06.20 13:48 Сейчас в теме
(33) в принципе можно start "имя программы" написать, что будет некоторым образом более очевидно.

Вообще, PS - нормальная штука. Она даже в убунту сейчас есть. Фактически это такой механизм доступа из командной строки к объектам .NET/mono. В этом что-то есть, но у меня на ноуте оно запускается просто какое-то нереальное количество времени (секунд 10). в то время как CMD стартует сразу. Не знаю, как в винде bash стартует, но в линухе быстро.

Я бы сравнил PS скорее с неким сильно переделанным для работы в командной строке C#.
35. check2 125 23.06.20 18:06 Сейчас в теме
(34)
Не знаю, как в винде bash стартует, но в линухе быстро.

Да норм, работает, я пользуюсь. У меня даже под ним bind9 висит со своей зоной, отдельную виртуалку не хотелось под DNS ставить, а в 10ке службы DNS нет. Не дотюкал как только автоматом службы в bash под Windows запускать. Штатные вещи типа systemctl enable bind9 не катят. Оч нравится использовать find, grep ну в общем всё, за что так любят bash
36. starik-2005 2180 23.06.20 22:07 Сейчас в теме
(35)
find, grep ну в общем всё, за что так любят bash
А locate юзаешь?
37. check2 125 27.06.20 09:49 Сейчас в теме
(36) Привет!.Нет, не использовал ранее. Почитал понял, что принцип поиска как в explorer Windows. Спасибо за наводку.
38. starik-2005 2180 27.06.20 10:37 Сейчас в теме
(37)
Почитал понял, что принцип поиска как в explorer Windows. Спасибо за наводку.
Эксплорер винды (на мой скромный взгляд) ищет не просто долго, а очень долго, в то время как locate по всем моим дискам ищет доли секунды, так что не в курсе, что там за принцип у эксплорера. С locate все просто: обновляешь базу данных (updatedb) и, фактически, делаешь к этой базе данных запрос на LIKE (locate часть_имени_файла). При этом БД очень быстро обновляется даже для SATA-диска - всему "виной" быстрая файловая система (и в части доступа к данным каталогов).
39. check2 125 27.06.20 14:56 Сейчас в теме
(38) Да, винда тупит нещадно.
6. tsukanov 05.06.20 16:06 Сейчас в теме
(5)
> Выше - простой пример.
Ваш пример говорит только о том, что вы не приложили элементарных усилий и не загуглили как это делается в повершеле.

Лишать вас удовольствия решить эту задачку не имею морального права )
YPermitin; +1 Ответить
11. oldcopy 126 05.06.20 21:55 Сейчас в теме
(6) Еще раз - гуглить будете, когда вам совсем нечего будет делать. В реальности мы имеем некоторый пласт наработанного кода, скриптов, знакомых наизусть команд и т.д. и т.п., которые прекрасно работают в CMD. Зачем мне что-то гуглить ради перехода на PS? Что мне это даст кроме лишних заморочек? А когда мне не будет хватать возможностей CMD, я скорее возьму OneScript, нежели PS.

Я не говорю что PS плох, это хороший, мощный инструмент. Но как командная оболочка он плох. Причин две: многословный незапоминаемый синтаксис и поломанная совместимость с CMD.
dg15000; frkbvfnjh; +2 Ответить
13. tsukanov 05.06.20 22:14 Сейчас в теме
(11) Вы закапываете себя все глубже и глубже. Ваша проблема решается одним символом.
check2; Gureev; Ferroks; +3 2 Ответить
18. oldcopy 126 06.06.20 00:10 Сейчас в теме
(13) Нам пох чем там она решается. Есть круг задач, есть наработанные решения и если новая оболочка не предоставляет совместимости, то я буду использовать старую. Есть одна избитая админская мудрость - не трогай работающую систему.
20. tsukanov 06.06.20 00:15 Сейчас в теме
(18) > Нам пох

Так этой фразой можно было ограничиться же )
Gureev; ice-net; YPermitin; +3 Ответить
21. ice-net 19 07.06.20 14:39 Сейчас в теме
(18)
Нам пох чем там она решается. Есть круг задач, есть наработанные решения и если новая оболочка не предоставляет совместимости, то я буду использовать старую. Есть одна избитая админская мудрость - не трогай работающую систему.

Не согласен. 1с 6.0 умерла. 7.7 почти умерла. х32 системы умирают, как и старое оборудование с отсутствием драйверов для х64 и многое другое.. Прогресс идет вперед)
29. Perfolenta 188 10.06.20 18:03 Сейчас в теме
(21)
Прогресс идет вперед

к сожалению, очень часто "прогресс" насильственно толкают вперед ради расширения рынка и выкачки новых денег из имеющейся базы потребителей...
отсюда и возникают шутки вроде: "компьютеры с каждым годом становятся все мощнее и мощнее и работают так же медленно, как и раньше..."
если (в области ПО) вы наблюдаете резкую потерю обратной совместимости, то с большой вероятностью это оно и есть... вендор выводит на рынок новый продукт, т.к. старый уже максимально продался...
30. webester 32 11.06.20 01:14 Сейчас в теме
(29)Простите а каким образом выкачивают новые деньги с помощью powershell? Я тоже как динозавр юзаю cmd потому, что не смог в ps(да и надобности нет), но мне просто интересно.
31. Perfolenta 188 11.06.20 07:27 Сейчас в теме
(30) извините, я просто высказался про так называемый "прогресс" при капитализме...
powershell это не продукт, он не продается, поэтому и не подпадает под мой комментарий... да и в нем обратную совместимость с cmd вроде бы пытались соблюсти... просто не совсем удачно получилось...
я тоже как динозавр использую cmd, просто лень переучиваться, т.к. возможностей cmd мне хватает...
а powershell использую только копипастом команд из интернета, если нужная команда нашлась поиском...
22. Synoecium 697 09.06.20 12:02 Сейчас в теме
не взлетит. Сравните длину команды, после нажатия Win+R
cmd <-> powershell
frkbvfnjh; +1 Ответить
23. frkbvfnjh 583 09.06.20 15:00 Сейчас в теме
(22) Полностью согласен - это роковая ошибка M$! Я думаю 90% даже не пытались, что то писать на PS просто увидев какой гемор его запустить. И это не сарказм. Мало того, что слово не реально длинное, так еще и читается на русском не складно ваще. Я тоже думаю, что PS буду использовать только под страхом смерти. CMD форева!
25. oldcopy 126 09.06.20 18:24 Сейчас в теме
(23) Основная ошибка MS - это, на мой взгляд, монструозный и многословный синтаксис. Все эти мозголомные конструкции в разы снижают читабельность скрипта, я уже не говорю о том, что поправить скрипт на коленке где нибудь на Core-сервере еще то удовольствие. Как средство администрирования тоже плохо, без бутылки шпаргалки практически непримемним, сложно помнить все эти многословные конструкции, а сидеть листать команды табом - тоже развлечение сомнительное.

(24)
Это вопрос лени конкретного человека. Я все свои скрипты под CMD переписал на PowerShell и больше к CMD не подхожу.


Это не вопрос лени, а вопрос обратной совместимости. Хорошо если у вас свои скрипты и свое хозяйство, а если аутсорс и скрипты у заказчика уже были, то переписывать их смысла нет, тем более там могут быть свои особенности, подробности которых канули в лету.
frkbvfnjh; acanta; +2 Ответить
26. Jokemas 135 10.06.20 11:37 Сейчас в теме
(25) Это не ошибка. Это эволюция. Система развивается, возможности CMD не закрывают потребности. PS полноценный скриптовый язык, который даст фору многим. В отличии от всяких OneScript, PS - родный для винды, встроенный скриптовый язык, который работать будет стабильнее и лучше, чем всякие примочки, поэтому виндопользователи должны учить его. Я не понимаю претензий к длине команд. У 1С тоже есть дикие выражения и PS использует ровно ту же идею. В самой команде, в ее тексте описано, что она выполняет, что здесь плохого? То, что вы язык разработчиков не знаете? Ну так лоббируйте перевод на русский язык всех языков, как это было при СССР. Тогда MS-DOS был на русском, даже команды писались по-русски =)). Развивайте это направление, а не спорьте, что команды не удобные. Это же бред.
27. oldcopy 126 10.06.20 14:35 Сейчас в теме
(26)
Это не ошибка. Это эволюция. Система развивается, возможности CMD не закрывают потребности. PS полноценный скриптовый язык, который даст фору многим.


С этим кто-то спорит? Нет. Но MS продвигает PS не только как скриптовый язык, но и как командную оболочку. А для командной оболочки у PS два существенных недостатка: поломана совместимость с CMD и многословный синтаксис. Одно дело когда вы пишите скрипт в IDE с автоподстановкой и совсем иное, когда сидите и долбите в консоли по Tab, потому что тупо не помните все эти Get-ЧтоТамТакоеДлинное.

В этом плане идеален bash (и вообще Unix-консоли): ln, ls, rm - и т.д. и т.п. И Microsoft не был чужд этому, многие старые CMD утилиты позволяли сокращать команды, тот же Diskpart вполне позволял писать sel par вместо select partition.

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

Ну тупо же:

Было:

netdom query fsmo

Стало:

Get-ADForest domain.local | ft DomainNamingMaster, SchemaMaster
Get-ADDomain domain.local | ft InfrastructureMaster, PDCEmulator, RIDMaster

Либо просто сравним:

tail -t file.log 

или

Get-Content file.log -Wait


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


Виндопользователи никому ничего не должны, а язык, в т.ч. скриптовый, должен выбираться исходя из реальных потребностей. Если человек основное время посвятил разработке в 1С, то ему не надо учить PS, достаточно просто взять OneScript и решать задачи автоматизации на привычном для себя языке, с использованием привычных приемов программирования. Это будет быстрее и эффективнее.
28. SerVer1C 259 10.06.20 16:40 Сейчас в теме
Ребята, нет смысла сравнивать теплое и мягкое. cmd и ps - разные технологии. Вы еще бы сюда добавили в сравнение vbscript, ну или даже python - на них тоже можно писать скрипты и твердить, что это лучше, чем в cmd )
Оставьте свое сообщение
Вопросы с вознаграждением