Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Смена расширения (http://forum.oszone.net/showthread.php?t=239573)

Ragnazar 29-07-2012 22:50 1961241

Смена расширения
 
Мне нужно скриптом изменять расширения всех файлов на .java
Не какого-то одного, а всю папку (*.*)

Ragnazar 29-07-2012 22:52 1961242

Если сделать
Код:

ren *.txt *.java
То название ведь не изменится?

Anonymоus 29-07-2012 23:20 1961249

Цитата:

Цитата Ragnazar
ren *.txt *.java »

Нет, этот код работать не будет. Используйте вот такую конструкцию:
Код:

For /F "delims=" %%A In ('Dir "*.txt" /B') Do Ren "%%A" "%%~nA.java"

Iska 29-07-2012 23:21 1961250

Ragnazar, как быть в случае наличия одинаковых имён:
Код:

0001.txt
0001.doc
0001.xls

?

Ragnazar 31-07-2012 15:16 1962160

Незнаю. Я "For" вообще не понимаю

Iska 31-07-2012 15:22 1962164

А при чём тут «for»? Вопрос про поведение гипотетического пакетного файла: что он должен делать при совпадении имён файлов?

Ragnazar 03-08-2012 12:14 1964033

Ну исходя из этой команды, расширение сменится только у txt файлов. Если будут другие, имеющие другое расширение то пакет их просто проигнорирует.

Burning Hell 13-11-2017 10:45 2777186

Всем доброго времени суток.
У меня схожая проблема, но разница в том, что мне хотелось бы в заданной директории (и поддиректориях) поменять расширения у cmd-скриптов с (.cmd) на (.txt). Подскажите как это сделать циклом for?

Iska 13-11-2017 11:23 2777194

Burning Hell, там сверху код приведён и вопрос задан.

Burning Hell 13-11-2017 11:26 2777198

Iska, подскажите, что такое %%A и как задать свою директорию, вернее свой путь к директории? Батник у меня лежит в одной директории, а файлы, которые я хочу переименовать лежат вообще в другом месте.

Iska 13-11-2017 12:00 2777203

Burning Hell, попробуйте так:
Код:

for /r "Путь" %%i in ("*.cmd") do ren "%%i" "%%~ni.txt"
Но вообще для таких вещей стоит освоить какой-нибудь сторонний файловый менеджер, наподобие Far Manager, Total Commander и т.п.

megaloman 13-11-2017 12:40 2777212

Burning Hell, ИМХО, лучше переименовывать не
файл.cmd -> файл.txt
а лучше
файл.cmd -> файл.cmd.txt
Это позволит застраховаться от непреднамеренного запуска командного файла, но при этом позволит легко отличить обычные txt файлы от переименованных cmd и, при необходимости, их найти.
Изменил решение Iska, не тестировал
Код:

for /r "Путь" %%i in ("*.cmd") do ren "%%i" "%%~nxi.txt"
Или, если эту строку использовать не в командном файле, а выполнить в командном окне:
Код:

for /r "Путь" %i in ("*.cmd") do ren "%i" "%~nxi.txt"

Burning Hell 13-11-2017 13:02 2777215

Цитата:

Цитата Iska
Но вообще для таких вещей стоит освоить какой-нибудь сторонний файловый менеджер, наподобие Far Manager, Total Commander и т.п. »

Спасибо за совет, я про это не подумал. Надо попробовать.

megaloman, подскажите, пожалуйста, по вашему коду. Что такое %%~nxi?

Iska 13-11-2017 13:41 2777222

Цитата:

Цитата Burning Hell
Что такое %%~nxi? »

Цитата:

Цитата for /?
Код:


Операции подстановки ссылок на переменные команды FOR
также расширены. Допускается применение следующих
синтаксических конструкций:

    %~I        - из переменной %I удаляются обрамляющие кавычки (")
    %~fI        - переменная %I расширяется до полного имени файла
    %~dI        - из переменной %I выделяется только имя диска
    %~pI        - из переменной %I выделяется только путь к файлу
    %~nI        - из переменной %I выделяется только имя файла
    %~xI        - из переменной %I выделяется расширение имени файла
    %~sI        - полученный путь содержит только короткие имена
    %~aI        - переменная %I расширяется до атрибутов файла
    %~tI        - переменная %I расширяется до даты /времени файла
    %~zI        - переменная %I расширяется до размера файла
    %~$ПУТЬ:I  - проводится поиск по каталогам, заданным в
                        переменной среды ПУТЬ, и переменная %I
                        заменяется на полное имя первого найденного
                        файла.  Если переменная ПУТЬ не определена или
                          в результате поиска не найден ни один файл,
                          то этот модификатор заменяется на пустую
                          строку.

При объединении нескольких операторов можно получить
следующие результаты:

    ~dpI      - переменная I раскрывается в имя диска и путь
    ~nxI      - переменная I раскрывается в имя файла и его
                      расширение

    ~fsI        - переменная I раскрывается в полный путь с
                      короткими именами
    ~dp$ПУТЬ:I - проводится поиск по каталогам, заданным в
                      переменной среды ПУТЬ, и переменная I
                      раскрывается в имя диска и путь к первому
                      найденному файлу.
    ~ftzaI    - переменная I раскрывается в строку, подобную
                      выдаваемой командой DIR



Burning Hell 13-11-2017 13:50 2777223

Iska, О_____________________о. Как же все в cmd не похоже на другие языки программирования.

megaloman, спасибо огромное. Отлично работает.

Burning Hell 13-11-2017 14:22 2777227

Подскажите, как сделать обратное преобразование имен, т.е. вырезать".txt" из всех имен?

Как я понимаю должно быть что-то типа такого:

Цитата:

Цитата gora
(For /F "usebackq tokens=1* delims==" %%i In ("*.cmd.txt") Do (If "%%i"==".txt" (Echo %%j) Else (If "%%j"=="" (Echo %%i) Else Echo %%i=%%j))) »

, но не уверен...

Iska 13-11-2017 15:21 2777238

Непосредственно для командной строки:
Код:

for /r "Путь" %i in ("*.cmd.txt") do @ren "%i" "%~ni"

Burning Hell 13-11-2017 15:38 2777240

Iska, а зачем собака перед ren?

И еще такой вопрос. Можно ли как-то научить этот код обрабатывать директорию, которая лежит в шаре? Т.е., путь относительный.

Iska 13-11-2017 15:51 2777243

Цитата:

Цитата Burning Hell
Iska, а зачем собака перед ren? »

Чтобы не отображались сами исполняемые в цикле разбора команды «ren».

Помните, в пакетных файлах пишут:
Код:

@echo off

«echo off» подавляет отображение команд пакетного файла, исполняемых интерпретатором команд. А чтобы при исполнении не отображалась сама команда «echo off» — её предваряют символом «@». Вот тут то же самое.

Burning Hell 13-11-2017 15:55 2777244

Цитата:

Цитата Iska
«echo off» подавляет отображение команд пакетного файла, исполняемых интерпретатором команд. А чтобы при исполнении не отображалась сама команда «echo off» — её предваряют символом «@». Вот тут то же самое. »

Так вот зачем пишут эту штуку, с echo) Я никогда не знал этого, если честно, т.к. очень мало пишу на cmd. Спасибо!

Iska 13-11-2017 16:11 2777251

Цитата:

Цитата Burning Hell
Так вот зачем пишут эту штуку, с echo) »

Угу. Если опустить «@» перед «echo off», то, при прочих умолчаниях, при исполнении этого пакетного файла первой строкой вывода будет именно «echo off» — сама эта команда, а подавление начнётся со следующей.

Burning Hell 13-11-2017 16:23 2777255

Iska,

Цитата:

Цитата Burning Hell
И еще такой вопрос. Можно ли как-то научить этот код обрабатывать директорию, которая лежит в шаре? При этом сам скрипт лежит на локальном диске. »

Пробовал делать вот так:

Код:

net use z: \\docs\i\Подразделения\НД\ДК\ОСС\Проекты
for /r "z:\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "%i" "%~ni"

Не работает. При том, что сам сетевой диск подключился и открывается.

Iska 13-11-2017 16:42 2777259

Burning Hell, при использовании внутри пакетных файлов «%» при переменных цикла и параметрах надо удваивать, наподобие:
Код:

@echo off

net.exe use z: "\\docs\i\Подразделения\НД\ДК\ОСС\Проекты"
for /r "z:\EY\InfoM\scripts" %%i in ("*.cmd.txt") do ren "%%i" "%%~ni"


Burning Hell 13-11-2017 16:58 2777263

Iska, спасибо огромное, дело действительно в знаках "%". Но при запуске скрипта выдает ошибки: "Сохраняемый или полученный файл заблокирован." Пробовал выдать права не только на чтение непосредственно для директории scripts - не помогло.

Iska 13-11-2017 17:12 2777267

Цитата:

Цитата Burning Hell
Но при запуске скрипта выдает ошибки: "Сохраняемый или полученный файл заблокирован." »

Добавьте «rem» перед «@echo off». Выполните пакетный файл в командной строке. Скопируйте с окна консоли полученный вывод, вставьте сюда под тэгами «code» и «spoiler».

Burning Hell 13-11-2017 17:17 2777268

Скрытый текст

Код:

C:\Work\scripts>rem net use z: \\docs\i\╨Я╨╛╨┤╤А╨░╨╖╨┤╨╡╨╗╨╡╨╜╨╕╤П\╨в╨Ф\╨Ф╨Ъ╨Р\╨
Ю╨б╨г╨а\╨Я╤А╨╛╨╡╨║╤В╤Л

C:\Work\scripts>for /R "z:\\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "
%i" "%~ni"
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.

C:\Work\scripts>pause
Для продолжения нажмите любую клавишу . . .


Iska 13-11-2017 17:40 2777276

Burning Hell, наоборот: сначала обрамить текст тэгом «code», а затем — тэгом «spoiler».

Сохраните пакетный файл в кодировке OEM/866 (сейчас он у Вас, видимо, в UTF-8/65001). «rem» перед «net use» ставить не надо. Отключите в Проводнике диск z: и снова попробуйте выполнить пакетный файл.

Burning Hell 13-11-2017 17:48 2777284

Iska, вот такую ошибку выдает:

Скрытый текст

Код:


C:\Work\scripts>net use z: \\docs\i\╨Я╨╛╨┤╤А╨░╨╖╨┤╨╡╨╗╨╡╨╜╨╕╤П\╨в╨Ф\╨Ф╨Ъ╨Р\╨Ю╨б╨
г╨а\╨Я╤А╨╛╨╡╨║╤В╤Л
Системная ошибка 53.

Не найден сетевой путь.


C:\Work\scripts>for /R "z:\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "%
i" "%~ni"

C:\Work\scripts>pause
Для продолжения нажмите любую клавишу . . .



От кодировки не зависит - и в OEM/866 и в UTF-8 не работает.

Тут какая-то проблема с сохранением - он не сохраняет после смены кодировки, как будто бы ничего не поменялось в файле. Файл открываешь, а он все равно в UTF-8

Iska 13-11-2017 17:53 2777288

Цитата:

Цитата Burning Hell
Тут какая-то проблема с сохранением - он не сохраняет после смены кодировки, как будто бы ничего не поменялось в файле. Файл открываешь, а он все равно в UTF-8 »

В чём и как именно делаете?

Burning Hell 14-11-2017 09:13 2777400

Iska,

1. Открываю свой батник в Notepad++.
2. В пункте Encoding выбираю Cyrillic и далее OEM 866. Кодировка меняется, но документ не подсвечивается, что были изменения.
3. После закрытия переоткрытия файла кодировка старая...

***
Сделал так. Сконвертировал файл в ANSI и далее выбрал OEM 866. Теперь скрипт выглядит так:

Код:

net.exe use z: \\docs\i\╧юфЁрчфхыхэш*\╥─\─╩└\╬╤╙╨\╧ЁюхъЄ√
for /r "z:\EY\InfoM\scripts" %%i in ("*.cmd.txt") do @ren "%%i" "%%~ni"
pause

Однако сейчас наблюдаются какие-то проблемы с доступом к самой шаре. Скрипт выдает такую же ошибку как в моем предыдущем сообщении.

Iska 14-11-2017 09:22 2777401

Добавьте в Вашу последовательность действий пункты:


1а) Выделить всё («Ctrl-A»);
1б) Вырезать («Ctrl-X»);
1в) Сохранить («Ctrl-S»);

2а) Вставить («Ctrl-V»);
2б) Сохранить («Ctrl-S»);


ибо от простого переключения кодировки само содержимое не меняется.

Burning Hell 14-11-2017 10:11 2777413

Iska,

шара заработала. Сейчас вот что выдает:

Скрытый текст

Код:


C:\Work\scripts>net.exe use z: \\docs\i\Подразделения\НД\ДК\ОСС\Проекты
Команда выполнена успешно.


C:\Work\scripts>for /R "z:\EY\InfoM\scripts" %i in ("*.cmd.txt") do @ren "%
i" "%~ni"
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.
Сохраняемый или полученный файл заблокирован.

C:\Work\scripts>pause
Для продолжения нажмите любую клавишу . . .



Скрипт в кодировке OEM 866, все читабельно.

Может быть, прав на директорию не хватает...?

У папки InfoM постоянно появляется флажок "Только чтение", даже если его убрать и нажать"Применить". При переоткрытии свойств он снова появляется.

Iska 14-11-2017 11:18 2777429

Цитата:

Цитата Burning Hell
У папки InfoM постоянно появляется флажок "Только чтение", даже если его убрать и нажать"Применить". При переоткрытии свойств он снова появляется. »

В Проводнике флажок «Только для чтения» на первой вкладке свойств объекта файловой системы для папки реализован отвратительно, можете даже не смотреть на него. Вот потому (и не только, разумеется) я и пользую Far Manager.

Цитата:

Цитата Burning Hell
Сейчас вот что выдает: »

1. Не переименовываются все подходящие файлы или только часть?
2. Если попробовать тот же код, но только на локальных файлах, а не на сетевом размещении — что будет?

Burning Hell 14-11-2017 11:30 2777437

Цитата:

Цитата Iska
В Проводнике флажок «Только для чтения» на первой вкладке свойств объекта файловой системы для папки реализован отвратительно, можете даже не смотреть на него. Вот потому (и не только, разумеется) я и пользую Far Manager. »

У меня есть total commander...Может быть, как-то через него можно. Если это поможет, конечно.

Цитата:

Цитата Iska
1. Не переименовываются все подходящие файлы или только часть? »

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

Цитата:

Цитата Iska
2. Если попробовать тот же код, но только на локальных файлах, а не на сетевом размещении — что будет? »

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

Iska 14-11-2017 11:47 2777443

Цитата:

Цитата Burning Hell
Я попробовал на директории, которая на флешке. Все замечательно работает. Все подходящие файлы переименовались и вновь стали батниками. »

Burning Hell, мне, к сожалению, не на чем даже посмотреть. Судя по беглому поиску, проблема с подобным сообщением об ошибке наблюдается с файлами, размещёнными на сетевом ресурсе, с символами в именах файлов. Возможно, что именно наш вариант с двумя точками — «Имя.cmd.txt».

Давайте попробуем проверить. Подключите сетевой ресурс диском. Создайте где-нибудь там файл «Имя.cmd.txt». Откройте командную строку и попробуйте посредством «ren "Диск:\Путь\Имя.cmd.txt" "Имя.cmd"» переименовать ранее созданный файл. Что получится?

Burning Hell 14-11-2017 12:04 2777449

Цитата:

Цитата Iska
Давайте попробуем проверить. Подключите сетевой ресурс диском. Создайте где-нибудь там файл «Имя.cmd.txt». Откройте командную строку и попробуйте посредством «ren "Диск:\Путь\Имя.cmd.txt" "Имя.cmd"» переименовать ранее созданный файл. Что получится? »

Смотрите. Взял этот же сетевой ресурс (шара со скриптами), подключенный как диск. Делаю rename как вы сказали. Файл test_new.cmd.txt существует, с ним все ок.

Скрытый текст

Код:

Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Users\test>ren z:\EY\InfoM\scripts\test_new.cmd.txt test_new.cmd

Сохраняемый или полученный файл заблокирован.

C:\Users\test>



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

Iska 14-11-2017 12:21 2777456

Цитата:

Цитата Burning Hell
Причем не работает, даже если файл просто будет называться test_new.txt - проверил, та же ошибка. »

«test_new.txt» — старое имя или новое? То есть, то из которого переименовываете или то, в которое переименовываете?

megaloman 14-11-2017 12:38 2777465

Вложений: 1
Цитата:

Цитата Iska
Возможно, что именно наш вариант с двумя точками — «Имя.cmd.txt». »

Не надо ляля :)
Вот батник. Запускаю его как file.bat >zzzzzzz.txt Сетевой ресурс организовал на своём компьютере.
Код:

@Echo On


net.exe use U: "\\CompName\Музыка"

Dir "U:\Бредовая хрень\" /s /b /a:-d
for /r "U:\Бредовая хрень" %%i in ("*.cmd") do ren "%%i" "%%~nxi.txt"
Dir "U:\Бредовая хрень\" /s /b /a:-d

net.exe use U: /Delete


net.exe use U: "\\CompName\Музыка"

Dir "U:\Бредовая хрень\" /s /b /a:-d
for /r "U:\Бредовая хрень" %%i in ("*.cmd.txt") do ren "%%i" "%%~ni"
Dir "U:\Бредовая хрень\" /s /b /a:-d

net.exe use U: /Delete

Результат прилагаю. ИМХО, загвоздка в разрешениях. Или, крамольная мысль, антивирус блокирует подозрительную деятельность

Burning Hell 14-11-2017 12:57 2777474

Цитата:

Цитата Iska
«test_new.txt» — старое имя или новое? То есть, то из которого переименовываете или то, в которое переименовываете? »

test_new.txt - это старое имя. Файл лежит на той же самой шаре, которая подключена как сетевой диск. Из этого файла я пытался сделать батник test_new.cmd.

Цитата:

Цитата megaloman
ИМХО, загвоздка в разрешениях. »

Т.е. в правах на директорию?

***
Я могу, конечно, попробовать попинать нашу тех. поддержку, но не уверен, что они смогут мне помочь.

Iska 14-11-2017 13:13 2777478

Burning Hell, особо идей нет.

Burning Hell 14-11-2017 13:22 2777481

Iska, спасибо вам за помощь и потраченное время!

ЗЫ если решу проблему - отпишусь.

megaloman 14-11-2017 13:32 2777485

Burning Hell, доступ+ безопасность. Сделайте на шаре тестовую папку. Попробуйте ручками скопировать туда файлы cmd. Затем скриптом переименовать их в cmd.txt. Посмотрите, что получилось. Затем другим скриптом из cmd.txt получите cmd.

Burning Hell 14-11-2017 13:37 2777488

Цитата:

Цитата megaloman
доступ+ безопасность »

Ну доступ к шаре у меня и так есть. А что вы имеете в виду под безопасностью?

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

Iska 14-11-2017 13:51 2777493

Цитата:

Цитата Burning Hell
мне нужно было копирнуть эти скрипты на нашу шару, но при копировании именно батников и vbs-ников возникали какие-то проблемы, по моему как раз с блокированием файлов, »

Э… В архив с шифрованием имён.

Burning Hell 14-11-2017 13:59 2777496

Цитата:

Цитата Iska
Э… В архив с шифрованием имён. »

Iska, хорошая попытка! Это было первое, что я сделал. Но при попытке извлечь файлы из архива меня ждала ровно та же проблема))

Цитата:

Цитата megaloman
Сделайте на шаре тестовую папку. Попробуйте ручками скопировать туда файлы cmd. Затем скриптом переименовать их в cmd.txt. Посмотрите, что получилось. Затем другим скриптом из cmd.txt получите cmd. »

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

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

Iska 14-11-2017 14:09 2777500

Цитата:

Цитата Burning Hell
Но при попытке извлечь файлы из архива меня ждала ровно та же проблема)) »

Локально?!!

Burning Hell 14-11-2017 14:27 2777511

Цитата:

Цитата Iska
Локально?!! »

Нет) Архив я кинул на шару и там пытался извлечь.

Iska 14-11-2017 14:39 2777516

Цитата:

Цитата Burning Hell
и там пытался извлечь. »

Смысла нет там извлекать, ибо получим ровно ту же ситуацию. Я имел в виду держать там только архив для обмена, а извлекать локально.

Burning Hell 14-11-2017 14:41 2777517

Цитата:

Цитата Iska
Смысла нет там извлекать, ибо получим ровно ту же ситуацию. Я имел в виду держать там только архив для обмена, а извлекать локально. »

Хорошая идея, кстати. Наверно, я так и сделаю.
Я вас не правильно понял.

Все выяснилось. Эта директория не просто шара, а папка в библиотеке sharepoint и там расширения cmd (и не только они) запрещены, поэтому наиболее удобный вариант - держать просто архив.

Всем спасибо за потраченное время.

Iska 14-11-2017 15:07 2777523

Цитата:

Цитата Burning Hell
Эта директория не просто шара, а папка в библиотеке sharepoint и там расширения cmd (и не только они) запрещены, »

Хех. Упоминалось и такое в процессе моего беглого чтения, но не стал обращать на это отдельно внимание ;).

denis19 08-07-2023 22:03 3011910

Цитата:

Цитата Iska
также расширены. Допускается применение следующих
синтаксических конструкций: »

Подскажите пожалуйста, в папке из кучи разных файлов, как менять расширение только одному файлу. Например вот эта команда меняет на cmd сразу все. cmd /c ren "*" *.cmd А как сделать чтоб только один?

NickM 08-07-2023 22:37 3011914

Цитата:

Цитата denis19
в папке из кучи разных файлов, как менять расширение только одному файлу. »

Каким образом Вы будете/ хотите определять, что именно этому файлу следует изменить расширение?

Как в соседней теме, через меню, ну т.е. начать и бросить и сказать "хоть так"?

denis19 08-07-2023 22:54 3011915

Цитата:

Цитата NickM
Каким образом Вы будете/ хотите определять, что именно этому файлу »

Мышью, или перетаскиванием. А похожие ответы что видел, то там только именно для всех файлов.

NickM 08-07-2023 23:03 3011916

Цитата:

Цитата denis19
Мышью, или перетаскиванием. »

Перетаскиванием куда?

Цитата:

Цитата denis19
А похожие ответы что видел, то там только именно для всех файлов. »

О каких ответах идёт речь?

И, да, Вы ждёте/ хотите заполучить готовое решение, или услышать варианты, которые, как враиант, предлагались:
Цитата:

Цитата NickM
в соседней теме »


denis19 08-07-2023 23:23 3011918

Вложений: 2
Цитата:

Цитата NickM
Перетаскиванием куда? »

На бантик с этой командой. А похожие это как этот тут. Я уже несколько своих сделал, но тоже именно всем файлам меняет. Не знаю что добавить или удалить в cmd /c ren "*" *.cmd

NickM 08-07-2023 23:31 3011919

Цитата:

Цитата denis19
На бантик »

Бантик - это к празднику, в обед.

Каким образом сценарий должен угадывать Ваше желание и:
Цитата:

Цитата denis19
менять расширение только одному файлу »

Или Вы хотите на каждое расширение создать отдельный сценарий?

denis19 08-07-2023 23:43 3011920

Цитата:

Цитата NickM
Каким образом сценарий должен угадывать »

А тут в конце команды cmd /c ren "*" *.cmd . Там менять. Не для всех, у меня там свои придуманные расширения, это для разных необычных блокнотов делал. Сделаю несколько штук, чтоб для каждого свой.

NickM 09-07-2023 00:11 3011921

Цитата:

Цитата denis19
Сделаю несколько штук, чтоб для каждого свой. »

Делайте:
Код:

ren %1 %~n1.myext

denis19 09-07-2023 00:51 3011923

Цитата:

Цитата NickM
ren %1 %~n1.myext »

Нет, сработал только раз, сменив на myext. Дальше ничего, ни перетаскиванием, ни кнопкой через реестр.

megaloman 09-07-2023 15:09 3011957

На рабочем столе создайте ярлык на батник, в проводнике выделите один или несколько файлов или/и папок и левой кнопкой мышки затащите их на эту иконку. Батник запросит то расширение, на которое Вы хотите переименовать файлы/папки
Код:

@Echo Off &Cls
        If "%~1"=="" (Echo This script mast started with path of files/folders in arguments. Script canceled. &Pause &Exit /B 2)
        Set "Ext="
        (Set /P Ext=Input Extension or . for empty extension ^>)
        If "%Ext%"=="" (Echo Extension not defined to rename. Script canceled. &Pause &Exit /B 2)
        If "%Ext%"=="." Set "Ext="
        For %%i In (%*) Do >nul Ren %%i "%%~ni.%Ext%"||(Echo !!! not success  Ren %%i "%%~ni.%Ext%" &dir /B "%%~ni.*" &Pause)
Exit /B 0


NickM 09-07-2023 20:28 3011994

Цитата:

Цитата denis19
Нет, сработал только раз, сменив на myext. Дальше ничего, ни перетаскиванием, ни кнопкой через реестр. »

Хмм, значит Вы что-то делаете не правильно, либо не понимаете как работает переименование.

denis19 10-07-2023 15:49 3012044

Цитата:

Цитата megaloman
На рабочем столе создайте ярлык на батник, в проводнике выделите один или несколько файлов или/и папок и левой кнопкой мышки затащите их на эту иконку. Батник запросит то расширение, на которое Вы хотите переименовать файлы/папки »

Спасибо. Работает.


Время: 20:00.

Время: 20:00.
© OSzone.net 2001-