2016-05-14 6 views
0

Простой вопрос. команда IMDU сделатьизменить расширение файла в партии

imdu /b file.imd file.raw 

и конвертирование file.imd на file.raw

У меня есть много .imd поэтому я нужна партия я пытался

for %%x in (*.imd) do imdu /b %%x %%~nx.raw 

Но не работает и создает файл с именем %%. raw

Мне нужна партия, которая удаляет расширение imd и заменяет на необработанный Как это сделать?

+1

'for %% x in (*.imd) do ECHO imdu/b %% x %% ~ nx.raw' показывает правильный результат для меня. Кстати, я думаю, что команда 'IMDU' выполняет некоторые дополнительные _contents_ преобразования в дополнение к переименованию, не так ли? – JosefZ

ответ

2

Откройте окно командной строки, запустите for /? и внимательно прочитайте выходную информацию.

Там объясняется %~xI (только расширение файла %I) и %~nI (только имя файла %I) и %~nxI (имя файла с расширением %I).

Поэтому нецелесообразно использовать x в качестве переменной цикла, поскольку для командного процессора Windows непонятно, что имеется в виду с %%~nx. Избегайте букв нижнего регистра как переменную цикла.

Как переменные цикла чувствительны к регистру, использовать, например,

for %%X in (*.imd) do imdu.exe /b "%%X" "%%~nX.raw" 

или мой любимый для таких простых петель

for %%# in (*.imd) do imdu.exe /b "%%#" "%%~n#.raw" 

Не забывает двойные кавычки имен файлов как файлы может содержать пробелы или круглые скобки в именах файлов, для которых требуются двойные кавычки вокруг имен файлов. Команда FOR содержит в этом прецеденте имя файла всегда без окружающих двойных кавычек в переменной цикла.

3

Ну, я предлагаю вам использовать оболочку Windows Power для этой задачи. Но CMD будет нормально работать слишком

Batch/CMD

В Windows, перейдите в нужный каталог, и введите:

ren *.txt *.c 

.txt является текущее расширение и .c новый. * Означает все файлы

PowerShell

лучше использовать метод Path.ChangeExtension вместо -replace

Dir *.txt | rename-item -newname { [io.path]::ChangeExtension($_.name, "c") } 

здесь все расширение текстовые файлы с *.txt будет изменен на .name

Приветствия!

+1

Это технически не DOS, которого не было со времен Windows 95. Однако вы правы. – SomethingDark