Как стать автором
Обновить

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

Что может быть хуже написания однострочников на cmd? Особенно для задачи, которая решается в far manager совсем без написания кода.

Да, что будет, с примером 1, если в разных папках вдруг окажутся файлы с одинаковыми названиями?

Для этого и есть пример 2, если файлы одинаковые, то лучше использовать его, т.к. он к названию добавляет название родительской папки. Вы не учитываете, что не у всех есть возможность устанавливать на свой ПК то, что лучше, что удобнее и комфортнее, в ряде компаний присутствует ограничение и/или запрет на установку дополнительных инструментов, поэтому, такие способы до сих пор считаются актуальными.

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

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

второй скрипт к имеющемуся названию добавляет название папки, откуда файл взят

(Вздыхает). Бывают ли вложенные папки? С уровнем вложенности >1?

Я вам больше скажу - бывают имена файлов в разном регистре. И даже в Windows.

В компаниях, где "присутствует ограничение и/или запрет на установку дополнительных инструментов" уже давно используют linux-дистрибутивы различной степени "отечественности", хотят они этого или нет. Во всех остальных случаях всегда можно обратиться к админу с просьбой установить far/tc/mc

Господи боже мой. Ну что это?

Я 10 лет назад написвл статью про Powershell на Хабре. Так её продолжают читать.

Зачем вы пишите про Batch файлы? Это Хабра а не центр уважения некрофилов. У вас статья в хабе про Powershell, но я его здесь не вижу.

А учитывая что стандартный интерпритатор в Windows 11 уже поменяли на Powershell то непонятно зачем вы это пишите. Да, batch умрёт не скоро. В винде много что умирает долго. Ну и что с того?

Хотя, тот факт что у вас побито форматирование Markdown и очень странный стиль текста означает что вы нагенерили этот вброс на GPT и ни бельмеса в теме не понимаете. Вы даже не в состоянии правильно скопировать текст из генератора.

Да, кстати, любой вменяемый программист вместо этой вашей "магии" написания цикла for на cmd воспользуется конвейром.

Get-ChildItem -Path "C:\Path\To\Source" -Filter *.csv -Recurse | Copy-Item -Destination "C:\Path\To\Destination"

А подавляющее большинство вообще сделают через WSL

cp -r "C:/Path/To/Source"/*.csv "C:/Path/To/Destination/"

Эх, Хабра... Раньше за такую "статью" можно и бан было схлопотать.

Просьба воздержаться от пиара вашей статьи в комментарии к данной статье. Если у Вас есть возможность установки любых программных средств/инструментов, то это не означает, что она есть у всех остальных. Иногда бывают ситуации работы в ограниченных условиях, когда Windows не 11 и нет возможности использования того инструмента, который был бы удобнее.

Из всех моих вопросов к вам вы решили обратить внимание только на это?

Я уже давно не видел Windows, в котором нет Powershell. Ближайшая винда без Powershell вообще это Windows XP. И на тот Powershell ставился в процессе апдейтов.

То есть, ваш второй коммент подтверждает два моих основных тезиса:

  1. Ваша "статья" нагенерирована двумя-тремя промптами в ГПТ.

  2. Вы сами ничего в теме не понимаете.

Уж пусть пойдут почитают мою статью, чем плавят здесь мозги.

Во-первых, Powershell был включен в Windows 7, которая уже закончила свой жизненный путь, настолько это было давно. Во-вторых, статья в хабе Powershell.

Да блин, в том-то и дело, что уже десятки лет есть более нормальные способы. Как тот же упомянутый ниже VBScript (а еще точнее - wscript/cscript), где все что нужно есть, в более удобном для написания скриптов виде. Намного более удобном. Причем там в обоих случаях доступны COM объекты, так что с найденными файлами вполне можно будет сделать что-то с их помощью - скормить их ворду, или записать их имена в Excel, ну так, просто для примера. То есть это будет полноценное решение, причем вполне штатными средствами ОС, а не это вот убожество.

И вот после того, как всё улеглось, надо подводить итоги.

Вот как так получается, что у статьи с рейтингом +9/-8, на три минуты чтения, с двумя абсолютно бесполезными (и по факту - малоприменимыми советами) получается 42 закладки? У меня в лудшем случае получается 3-4 закладки на 1000 просмотров, и то при учёте того, что у меня образовательная статья на 10-20 минут чтения. Обычно стати на 10-12 тыщ просмотров не выходят за пределы 10-20 закладок. При том, что из десяти комментариев верхнего уровня у тебя 7 комментируют против этого решения, ещё два говорят на отвлечённые темы и только один человек заявляет, что ушёл в детство, и вспомнил молодость, когда он сам такое делал.

Магия CEO! Или ботнэтов.

Я бы тоже хотел это понять. Причем это не единичный случай далеко.

https://habr.com/ru/articles/794604/

Вот как эта статья может иметь +12, при том что в ней куча проблем? И тоже кучка комментариев, поясняющих, почему и где эти проблемы. И текст там такой же бессмысленный, как и этот... 100 вопросов про SQL.

Вот как так получается, что у статьи ... 42 закладки?

Очевидно же!

Да, batch умрёт не скоро. В винде много что умирает долго. Ну и что с того?

Лично у меня ещё много ХР в хозяйстве, потому универсальные скрипты приходится писать на cmd, встраивая туда проверку ОС и её разрядности.

Что, впрочем, не отменяет убогости и бессмысленности данной "статьи" и вообще поставленной задачи. Лично я бы вообще через виндовый поиск всё делал, если нет FAR'a или ТС установленных.

Если квест с командами пройден, то в тотал коммандер это делается нажатием ctrl+b, а дальше фильтруй как хочешь через ctrl+f12 список и делай с файлами что хочешь.

А ещё можно воспользоваться бесплатным и функциональным FAR...

Спасибо вспомнил молодость, когда писал гигантские батники-вертушки.

Но лично я, если бы это была не разовая задача, а вертушка, предпочитал сначала сформировать отдельный список файлов для обработки через dir /r > files.lst А уже потом через for читать этот файл построчно и делать копирование или любую другую сложную обработку вызывая call обработчик.cmd

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

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

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

far manager все это умел еще лет 20 назад.

Проверните все то же самое на VBScript, там вроде даже циклы нормальные есть. Или действительно как нормальные админы - через PS

рецепт под микроскопом магии

Микроскопу требуется более магический объектив дабы рассмотреть детали рецепта во всех подробностях.

Простите, если речь идёт про Windows и ограниченность в инструментах, то с задачей про файлы из подпапок прекрасно справляется проводник. Идём в ИсходнуюПапку, в поле поиска вводим *.расширение и видим все файлы прямо в нашем окне. Можно скопировать, вырезать, удалить... любые операции над файлами.

В файл-менеджере Directory Opus (пользую 25 лет) такие операции выполняются легко

Представляю, какой шок у автора вызовут возможности find, bash и вообще однострочников в Linux...

Давным давно, несколько десятков лет назад, чтобы запустить что-то, обычно не было экзешников, нужно было как минимум прописать батник с путями. Знакомство с бат и восхищение от того, что он позволял делать, было такое же, как у тебя сейчас, ностальгия, спасибо ?.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории