left logo pcompstart slogan pcompstart
right logo pcompstart
Главная » Пользователю Windows »Выборочное групповое переименование расширений файлов в Windows

Выборочное групповое переименование расширений файлов в Windows

Здравствуйте, дорогие пользователи сайта pcompstart и просто гости. Совсем недавно, мне понадобилось выборочно изменить расширение файлов в одной из папок (в моём случае нужно было поменять ".py.py", на просто ".py", фалы, имеющие расширение .py, это файлы языка python). Помимо вышеуказанных скриптов в паке были ещё и другие, с разными окончаниями (например, ".txt", ".png", ".jpg" и др.). Задался я вопросом о возможностях проводника выполнить такое действие, и в следствии чего был немного огорчён, так как, его опции не позволяют выполнить данную операцию. Будучи, поклонником и приверженцем ОС Windows (просто все машины под его управлением куда уж переходить на macOS, да и смысла не вижу Apple просто задирает цены), решил я найти нехитрый способ реализации этой задачи. Как говорится Гугл в помощь, покопался и мне удалось-таки найти решение. Можно сделать это с помощью Windows PowerShell. О том, как это сделать, а также очень простое и детальное объяснение, которое поймёт даже новичок в компьютерах, будет описано далее. На сайте pcompstart существует некое продолжение этой статьи, публикация называется "Как выборочно массово поменять название файлов в Windows".

Для того чтобы открыть Windows PowerShell, нужно зайти в контекстное меню кнопки пуск (самый простой способ это, на иконке меню пуск кликнуть правой кнопкой мышки), и выбрать строку " Windows PowerShell ". В моём случае не понадобилось запускать PowerShell от имени администратора. Поэтому если у вас не будет получаться, то попробуйте выполнить данное действие от имени администратора. Также если вы будете выполнять данную операцию на другом диске, например, не на диске C:\, а на D:\, то перейдите на этот диск в PowerShell.

После того как откроется окно в строку надо вбить следующую фразу.

Get-ChildItem -Path $env:userprofile\Downloads -Filter "*.txt*" |
Rename-Item -NewName {$_.Name -Replace "\.txt$", ".tx"}

Это одна фраза, а разбил я её на две строки для удобства восприятия написанного. В таком же порядке можете и копировать. Но всё-таки если захотите вбить одной строкой, то тогда просто уберите вертикальную палочку с конца первой строчки (|). 

Данная строка выбирает и меняет все файлы с расширением ".txt" на ".tx", в папке профиля пользователя Downloads (Загрузки). То есть, в моём случае это "C:\Users\Aleksey\Downloads". Для простоты вашего использования, ниже, я приведу инструкцию что и где надо заменить, чтобы данная команда поменяла файлы в той директории, которая будет вам нужна. Как вы уже скорее всего догадались, менять надо будет те слова, которые подчёркнуты. Я разобью их на четыре пункта. 

1. Если, вы хотите поменять путь тогда после переменной $env: укажите ваш. Например, если надо поменять расширения файлов в паке находящейся на диске C: в паке test, то надо написать $env: C:\test.

2. Вторые почёркнутые символы ("*.txt*") это то расширение, которое мы будем искать в паке. Например, если мы хотим заменить файлы, имеющие расширение .png то нужно его прописать. Слово будет выглядеть следующим образом — "*.png*".

3. Следующее подчёркнутое слово это .txt ("\.txt$"). Здесь надо прописать то расширение, которое вы хотите заменить. (Другими словами говоря во второй и третий пункты пишется одно и то же расширение.) Например, надо поменять .png, то указать нужно так — "\.png$".

4. Ну и четвёртое последнее (".tx") указывается то расширение, на которое требуется заменить. Например, предыдущее расширение файла (в третьем пункте) .png нужно заменить на .jpg тогда слово будет такое — ".jpg".

Вот что должно получиться в конце;

Get-ChildItem -Path $env:C:\test -Filter "*.png*" |
Rename-Item -NewName {$_.Name -Replace "\.png$", ".jpg"}

selctive_expansion1

Также, можно просто протестировать, правильно ли был составлен путь и изменены расширения. В этом случае Windows PowerShell, у себя в полях только покажет возможные действия, которые он бы проводил по-настоящему. Для этого, в конце второй строки надо добавить командлету "-WhatIf". В этом случае, наши две строки будут выглядеть следующим образом;

Get-ChildItem -Path $env:C:\test -Filter "*.png*" |
Rename-Item -NewName {$_.Name -Replace "\.png$", ".jpg"} -WhatIf

selctive_expansion2

Ещё, можно поменять расширения файлов рекурсивно (рекурсия — определение, описание, изображение какого-либо объекта или процесса внутри самого этого объекта или процесса, фраза взята из Википедии). То есть, поменять выбранное расширение не только специфически в данной директории, но и во всех вложенных папках. Для этого, в конце первой строки требуется добавить командлету -Recurse. Тогда, данное выражение будет выглядеть следующим образом.

Get-ChildItem -Path $env:C:\test -Filter "*.png*"  -Recurse |
Rename-Item -NewName {$_.Name -Replace "\.png$", ".jpg"}

Для чистоты эксперимента, на следующем фото, я добавил ещё одну вложенную паку test1, в директорию C:\test, также с двумя видами файлов — ".txt", ".png". В итоге второй путь получился такой C:\test\test1.

selctive_expansion3

Ну вот вроде всё описал, пользуйтесь (во время написания кода будьте внимательны, т.к. малейшая погрешность, и PowerShell будет выдавать ошибку, ну и здесь не пугайтесь, он пишет на русском языке где ошибка, просто присмотритесь туда, куда, он указал и вы её найдёте). Как видите, после хорошего и чёткого объяснения, не всё так тяжело как кажется. Всё время как писал то думал, вот бы кто был такой, кто описал бы мне так все эти операции, как описано в статье, тогда, когда мне это было нужно. Если, будут вопросы тогда, лучше всего присылайте мне на почтовый ящик сайта. Заполнить и отправить форму, вы сможете на странице Контакты. Ну а если не захотите, тогда задайте в комментариях.

06.10.2017

Ещё статьи, которые могут заинтересовать:
Исправление ошибок Windows с помощью Microsoft Easy Fix
Ccleaner безупречная очистка операционной системы
Как добавить пункты переместить и копировать в папку в контекстное меню рабочего стола Windows
Как отключить или включить протокол IPv6 в Windows
Популярный архиватор файлов программа WinRAR

К этой статье нет коментариев. Вы можете быть первым

Имя:
Коомментарий:
:mellow: :sorr; :) :wub: :angry: :( :unsure: :wacko: :blink: -_- :rolleyes: :huh: ^_^ :o ;) :P :D :lol: B) :ph34r:
Я робот: (для подтверждения того что вы являетесь человеком, уберите галочку)
Авторизация
ImgLogin ImgPass Регистрация

RSS лента

Подписаться на обновления по RSS

Получать новые статьи на
E-mail

Ваш E-mail: