Комментарии 28
Возможно КДПВ неполона.
C:\>_
Что может быть хуже написания однострочников на cmd? Особенно для задачи, которая решается в far manager совсем без написания кода.
Да, что будет, с примером 1, если в разных папках вдруг окажутся файлы с одинаковыми названиями?
Для этого и есть пример 2, если файлы одинаковые, то лучше использовать его, т.к. он к названию добавляет название родительской папки. Вы не учитываете, что не у всех есть возможность устанавливать на свой ПК то, что лучше, что удобнее и комфортнее, в ряде компаний присутствует ограничение и/или запрет на установку дополнительных инструментов, поэтому, такие способы до сих пор считаются актуальными.
Сама задача бессмыссленная. Если среди 100000 обработанных файлов есть с одинаковыми именами - либо что-то будет перетерто (и потеряно, и никто об этом никогда не узнает), либо скрипт упадет с ошибкой (и что-то не обработает, но про это тоже никто не узнает), либо будет ждать вмешательства человека.
Вы сами себе противоречите, в папке не могут находится файлы с одинаковым названием, а, как я сказала выше, второй скрипт к имеющемуся названию добавляет название папки, откуда файл взят, т.е., не будет возможности появления ошибки сохранения файлов с одним и тем же названием в одну папку, т.к. названия изменяется.
В компаниях, где "присутствует ограничение и/или запрет на установку дополнительных инструментов" уже давно используют 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 ставился в процессе апдейтов.
То есть, ваш второй коммент подтверждает два моих основных тезиса:
Ваша "статья" нагенерирована двумя-тремя промптами в ГПТ.
Вы сами ничего в теме не понимаете.
Уж пусть пойдут почитают мою статью, чем плавят здесь мозги.
Во-первых, Powershell был включен в Windows 7, которая уже закончила свой жизненный путь, настолько это было давно. Во-вторых, статья в хабе Powershell.
Да блин, в том-то и дело, что уже десятки лет есть более нормальные способы. Как тот же упомянутый ниже VBScript (а еще точнее - wscript/cscript), где все что нужно есть, в более удобном для написания скриптов виде. Намного более удобном. Причем там в обоих случаях доступны COM объекты, так что с найденными файлами вполне можно будет сделать что-то с их помощью - скормить их ворду, или записать их имена в Excel, ну так, просто для примера. То есть это будет полноценное решение, причем вполне штатными средствами ОС, а не это вот убожество.
![](https://habrastorage.org/getpro/habr/upload_files/c85/d0d/b41/c85d0db41dddf62915ed2185946200bf.png)
И вот после того, как всё улеглось, надо подводить итоги.
Вот как так получается, что у статьи с рейтингом +9/-8, на три минуты чтения, с двумя абсолютно бесполезными (и по факту - малоприменимыми советами) получается 42 закладки? У меня в лудшем случае получается 3-4 закладки на 1000 просмотров, и то при учёте того, что у меня образовательная статья на 10-20 минут чтения. Обычно стати на 10-12 тыщ просмотров не выходят за пределы 10-20 закладок. При том, что из десяти комментариев верхнего уровня у тебя 7 комментируют против этого решения, ещё два говорят на отвлечённые темы и только один человек заявляет, что ушёл в детство, и вспомнил молодость, когда он сам такое делал.
Магия CEO! Или ботнэтов.
Я бы тоже хотел это понять. Причем это не единичный случай далеко.
https://habr.com/ru/articles/794604/
Вот как эта статья может иметь +12, при том что в ней куча проблем? И тоже кучка комментариев, поясняющих, почему и где эти проблемы. И текст там такой же бессмысленный, как и этот... 100 вопросов про SQL.
Вот как так получается, что у статьи ... 42 закладки?
![](https://habrastorage.org/getpro/habr/upload_files/67b/46a/f32/67b46af32b47f0203292bcc5aaba3fad.png)
Очевидно же!
Да, batch умрёт не скоро. В винде много что умирает долго. Ну и что с того?
Лично у меня ещё много ХР в хозяйстве, потому универсальные скрипты приходится писать на cmd, встраивая туда проверку ОС и её разрядности.
Что, впрочем, не отменяет убогости и бессмысленности данной "статьи" и вообще поставленной задачи. Лично я бы вообще через виндовый поиск всё делал, если нет FAR'a или ТС установленных.
Если квест с командами пройден, то в тотал коммандер это делается нажатием ctrl+b, а дальше фильтруй как хочешь через ctrl+f12 список и делай с файлами что хочешь.
Спасибо вспомнил молодость, когда писал гигантские батники-вертушки.
Но лично я, если бы это была не разовая задача, а вертушка, предпочитал сначала сформировать отдельный список файлов для обработки через dir /r > files.lst А уже потом через for читать этот файл построчно и делать копирование или любую другую сложную обработку вызывая call обработчик.cmd
Что касается powershell, то для простых задач пакетной обраотки файлов он избыточно сложен, особенно если не работать с ним каждый день. Простоые задачи решаются простыми инструментами.
рецепт под микроскопом магии
Микроскопу требуется более магический объектив дабы рассмотреть детали рецепта во всех подробностях.
Простите, если речь идёт про Windows и ограниченность в инструментах, то с задачей про файлы из подпапок прекрасно справляется проводник. Идём в ИсходнуюПапку, в поле поиска вводим *.расширение и видим все файлы прямо в нашем окне. Можно скопировать, вырезать, удалить... любые операции над файлами.
В файл-менеджере Directory Opus (пользую 25 лет) такие операции выполняются легко
Представляю, какой шок у автора вызовут возможности find, bash и вообще однострочников в Linux...
Давным давно, несколько десятков лет назад, чтобы запустить что-то, обычно не было экзешников, нужно было как минимум прописать батник с путями. Знакомство с бат и восхищение от того, что он позволял делать, было такое же, как у тебя сейчас, ностальгия, спасибо ?.
Извлечение всех файлов из папок рекурсивно: мощь одной строки кода