Cmd убрать расширение у файла
👍 Смотрите как отобразить и изменить расширения файлов в Windows 7, 8 и 10.
По умолчанию, Windows не показывает расширения файлов. Это не всегда удобно, так как порой возникает необходимость изменить расширение, или попросту его увидеть. Ведь файлы с разным расширением могут иметь похожие иконки и, более того, существуют вирусы, эффективность распространения которых во многом зависит от того, видны ли расширения файлов.
Чтобы отобразить расширение файлов в Windows 7:
• Перейдите в Панель управления
• И уберите галочку напротив него.
• После этого расширения всех файлов будут отображены на вашем ПК
В Windows 8 и 10 данный способ также актуален. Только в Панели управления нужно выбрать меню Параметры проводника (вместо Параметры папок).
В Windows 8 и 10, меню Параметры проводника можно также открыть и из файлового менеджера. Для этого:
• Откройте любую папку
• Выберите Файл / Изменить параметры папок и поиска
• Далее уберите галочку напротив уже описанного пункта
• Выберите Вид / Параметры / Изменить параметры папок и поиска
• Далее в том же порядке
Но в Windows 8 и 10, можно отобразить или скрыть расширения файлов намного проще, не используя меню Параметры папок. Для этого:
• Откройте любую папку
• Перейдите в закладку Вид
• Перейдите в подраздел закладки Показать или скрыть
• И поставьте галочку напротив пункта меню Расширения имён файлов.
• Как видите, когда я ставлю такую галочку, расширения файлов появляются; убираю – пропадают. Всё просто.
С отображением расширением разобрались.
Но в некоторых случаях требуется изменить расширение файла. Как это сделать?
Если речь идёт о необходимости изменения расширения файла, оба из которых (существующее и то, на которое необходимо изменить) создаются одним приложением, то изменить его можно с помощью самого приложения. Если проще – просто пересохранить с другим расширением.
• Есть .docx файл, расширение которого необходимо изменить на .rtf
• Оба расширения файлов поддерживаются Microsoft Word
• Чтобы изменить расширение, откройте нужный файл с помощью Microsoft Word
• И выберите Файл / Сохранить как / Обзор
• В всплывающем меню строки Тип файла, программа даёт возможность выбрать желаемое расширение файла для сохранения.
• Находим в списке .rtf
• Как видим, у нас появился точно такой же файл, только с другим расширением.
Чтобы изменить расширение файла вручную или если на вашем ПК не установлено приложение, с помощью которого можно прочесть или пересохранить нужный файл:
• Кликните по нужному файлу правой кнопкой мыши и выберите Переименовать
• Или выделите нужный файл и нажмите клавишу F2
• После этого вручную удалите ненужное расширение
• И впишите то, которое вам необходимо
• После нажатия клавиши Enter система предупредит, что в результате изменения расширения файла, он может стать недоступным.
• Подтвердите изменение расширения.
• В случае если файл таки станет нечитаемым, его расширение можно изменить в обратном порядке таким же способом.
Если по какой-то причине возникла необходимость изменить расширения одновременно нескольких файлов определённого формата в данной папке, то сделать это можно с помощью Командной строки.
• Перейдите в папку, в которой расположены файлы, расширение которых нужно изменить
• введите в адресную строку проводника cmd и нажмите Enter.
• Введите в командной строке команду
(это если необходимо изменить *.docx файлы в *.txt)
• Как видим, расширения всех файлов папки формата *.docx, стали *.txt файлами.
На этом всё. Ставьте под видео лайк и подписывайтесь на наш канал. Всем спасибо за просмотр. Удачи.
In the for-loop all files with the extension flv get echoed, but I want the make some actions with the file(s) where I need one time the file without the extension and one time with the extension. How could I get these two?
I searched for solutions but I don't find one. I'm a real newbie in batch.
И во вложенных тоже
Изменение расширений текстовых файлов во всех вложенных директориях исходного каталога требует ввода команды с более сложным синтаксисом:
Синтаксис
Синтаксис
Параметры
- файлы r только для чтения
- h скрытые файлы
- я не проиндексированные файлы содержимого
- системные файлы
- файлы , готовые к архивации
- l точки повторного анализа
- - Используется в качестве префикса, означающего "not"
Комментарии
FileName, Delete (Y/N)?
Чтобы подтвердить удаление, нажмите клавишу Y. Чтобы отменить удаление и отобразить следующее имя файла (если указана группа файлов), нажмите клавишу N. Чтобы закрыть команду Del , нажмите клавиши CTRL + C.
Если вы отключаете расширение команды, параметр /s отображает имена всех файлов, которые не были найдены, а не отображает имена удаляемых файлов.
Если указать определенные папки в параметре, все включаемые файлы также будут удалены. Например, если нужно удалить все файлы в папке \ворк , введите:
Можно использовать подстановочные знаки ( * и ?) для удаления нескольких файлов за раз. Однако во избежание непреднамеренного удаления файлов следует использовать подстановочные знаки с осторожностью. Например, если ввести следующую команду:
Are you sure (Y/N)?
Чтобы удалить все файлы в текущем каталоге, нажмите клавишу Y и нажмите клавишу ВВОД. Чтобы отменить удаление, нажмите клавишу N и нажмите клавишу ВВОД.
Прежде чем использовать подстановочные знаки с командой Del , используйте те же подстановочные знаки с командой dir , чтобы получить список всех файлов, которые будут удалены.
7 Answers 7
You can use %%~nf to get the filename only as described in the reference for for :
The following options are available:
Just a quick note: in the above example %%f would be something like C:\Users\Admin\Ordner\foo.flv and %%~nf would give you foo . If you want everything except the extension use %%~df%%~pf%%~nf which would give you C:\Users\Admin\Ordner\foo
Thanks for the modifier/ description table Dirk. My case was getting the file name without extension from param %1 in a batch script. echo %~n1 was what I was after.
In case the file your variable holds doesn't actually exist the FOR approach won't work. One trick you could use, if you know the length of the extension, is taking a substring:
the -4 means that the last 4 digits (presumably .ext) will be truncated.
This is not working for me (on Win8.1) -- maybe I misunderstand it when trying echo %f:~0,-4% in the context of the example used in the question. What am I doing wrong?
Apparently that works for "normal" variables, not FOR variables (or maybe I just don't know the correct syntax). Anyway this will work in the context of the OP example: SET fl=%%f and then echo %fl:~0,-4%
@Wolf you need to set value of the loop variable to a normal variable then do string substitution/truncation in the normal variable
In more than enough cases, the extension length does not equal 3 or is unknown. You can still use a for even if the file does not exist, see my answer.
I'm also a stranger to windows cmd, but try this:
Without looping
I am using this if I simply want to strip the extension from a filename or variable (without listing any directories or existing files):
If you want to strip the extension from a full path, use %%dpnf instead:
Example:
(Use directly in the console)
This is a really late response, but I came up with this to solve a particular problem I had with DiskInternals LinuxReader appending '.efs_ntfs' to files that it saved to non-NTFS (FAT32) directories :
@matan7890 True; the op doesn't specify what "I want the make some actions with the file(s)" [sic] entails, but one of those actions may be renaming them, in which case my answer is an expansion of the accepted answer.
This helped a friend of mine who opened an attachment and had .encrypted added to all his files, along with a ransom demand. Apparently the attacking script must have been a batch file that is the reverse of this and added .encrypted to all files.
upvoted because you mention the drive, path, and extension (%%~df%%~pf%%~nf) which most closely resembles the output of %%f from the orginal question, instead of just the filename without extension (%%~nf)
If your variable is an argument, you can simply use %~dpn (for paths) or %~n (for names only) followed by the argument number, so you don't have to worry for varying extension lengths.
For instance %~dpn0 will return the path of the batch file without its extension, %~dpn1 will be %1 without extension, etc.
Whereas %~n0 will return the name of the batch file without its extension, %~n1 will be %1 without path and extension, etc.
The full thing is %~dpnf0 and it starts to make sense, when you take a closer look:
Отображает или изменяет типы файлов, которые используются при сопоставлении расширений имен файлов. Если используется без оператора присваивания (=), эта команда отображает текущую командную строку открытия для указанного типа файла. При использовании без параметров эта команда отображает типы файлов, для которых определены строки открытых команд.
Эта команда поддерживается только в cmd.exe и недоступна в PowerShell. Хотя это решение можно использовать cmd /c ftype в качестве обходного пути.
Примеры
Чтобы отобразить текущие типы файлов с определенными командными строками открытия, введите:
Чтобы отобразить текущую командную строку открытия для типа файла ткстфиле , введите:
Выходные данные этой команды выглядят примерно следующим образом:
Чтобы удалить командную строку открытия для типа файла с именем example, введите:
Чтобы связать расширение PL с типом файла Перлскрипт и включить тип файла Перлскрипт для запуска PERL.EXE, введите следующие команды:
Чтобы исключить необходимость ввода расширения имени файла с расширением PL при вызове сценария Perl, введите:
Удаляет один или несколько файлов. Эта команда выполняет те же действия, что и команда Erase .
команда del также может запускаться из консоли восстановления Windows с использованием различных параметров. дополнительные сведения см. в разделе Windows среды восстановления (WinRE).
Если удалить файл с диска с помощью Del , вы не сможете получить его.
Параметры
Параметр | Описание |
---|---|
Указывает тип файла для просмотра или изменения. | |
Указывает командную строку открытия, используемую при открытии файлов указанного типа. | |
/? | Отображение справки в командной строке. |
Комментарии
В следующей таблице описано, как команда ftype заменяет переменные в строке открытой команды:
Переменная | Заменяющее значение |
---|---|
%0 или %1 | Заменяется именем файла, запускаемым через ассоциацию. |
%* | Возвращает все параметры. |
%2 , %3 , . | Получает первый параметр ( %2 ), второй параметр ( %3 ) и т. д. |
%~ | Возвращает все оставшиеся параметры, начиная с n-го параметра, где n может быть любым числом от 2 до 9. |
Важно учесть
Отмечу, что таким образом вы можете изменить расширение любых файлов, не только текстовых. Однако при этом следует помнить, что рассматриваемая команда просто переименовывает расширение, а не преобразует в другой формат. Если вы, к примеру, назначите свойственное видеофайлам расширение картинке JPG, она просто не откроется. Поэтому перед тем, как выполнять рассмотренные выше действия необходимо быть уверенным в том, что расширение совместимо с содержимым файла.
Второй важный момент, который вам следует учесть — автоматического сохранения исходных текстовых файлов не произойдет. Поэтому я бы порекомендовал создать дополнительную папку и скопировать в нее изначальные версии. Возможно они вам еще понадобятся.
Если результат применения команды вас устроит и необходимость в них отпадет, вы всегда сможете удалить ставший ненужным каталог.
Используете ли вы командную строку и, если да, считаете ли, что с ее помощью задачи в системе выполняются проще и быстрее?
Примеры
Чтобы удалить все файлы в папке с именем Test на диске C, введите следующую команду:
Чтобы удалить все файлы с расширением имени файла .bat из текущего каталога, введите:
Когда вам необходимо поменять расширение одного файла, это очень простая задача. Из контекстного меню вы выбираете опцию переименования и вводите новое расширение вместо прежнего. Если необходимо присвоить новые расширения всего нескольким файлам, пожалуй, лучше воспользоваться этим методом.
Только в одной папке
Но что делать, когда речь идет о десятках или даже сотнях файлов? Время, которое вы затратите на их ручное переименование, можно было бы провести с намного большей пользой и удовольствием. На помощь приходит командная строка. Для начала откройте ее из перечня стандартных опций главного меню системы. Существует и другой метод — ввод cmd в текстовом поле главного меню с последующим нажатием Энтера.
Далее, используя команду cd укажите путь к каталогу, в котором располагаются нужные вам файлы. Команда будет иметь вид: cd [путь к папке] .
Если вам надо сделать веб-страницы из текстовых файлов и они уже размечены тэгами языка HTML, вам будет необходимо использовать команду ren . Поскольку вам предстоит переименовать все TXT-файлы в директории, то ее следует ввести так:
Но важную часть работы вам нужно будет проделать перед тем, как вы перейдете непосредственно к выполнению команды. Если файлы, расширения которых вам нужно поменять, изначально располагаются в разных папках, их надо переместить в одну. Ту самую, в которой вы и примените «ren».
Читайте также: