2016-04-06 4 views
0

Я хочу использовать приведенный ниже код (взятый из другой темы) в командной строке dos, используя командный файл, для переименования файла .mkv с использованием имени файла из TXT-файла. Однако, если в имени файла .txt есть пробел, переименованный файл пропускает все символы после пробела и включая его. Например. «movie.txt» отлично работает, но «movie.txt» не работает; они создают файлы «movie.mkv» и «the.mkv» соответственно.Переименование файла на основе имени файла другого типа

@echo off 
setlocal enabledelayedexpansion 

:: This assumes there is only one mkv file in the folder 
for /F %%A in ('dir /b *.txt') do (
set basename=%%~nA 
ren *.mkv !basename!.mkv 
) 

Может ли кто-нибудь помочь?

Спасибо заранее, Richard

+0

Используйте двойные кавычки: http://ss64.com/nt /syntax-esc.html – JosefZ

ответ

0

Для тех, кто заинтересован вот решение, которое я нашел:

@echo off 
setlocal enabledelayedexpansion 

:: This assumes there is only one mkv file in the folder 
for /F "delims=" %%A in ('dir /b *.txt') do (
set basename="%%~nA" 
ren *.mkv !basename!.mkv 
) 

С уважением, Richard

Смежные вопросы