Получить имя файла, включая пробелы, из цикла FOR - PullRequest
0 голосов
/ 02 мая 2018

РЕДАКТИРОВАТЬ: Вот мой полный код.

@echo off
cls
Set "file=%~f1"
Set "f_name=%~n1"
Set "n_name=%f_name: =_%"
Set "target=C:\Users\%USERNAME%\Desktop"
ffmpeg -i "%file%" ^
       -dn ^
       -an ^
       -r 25 ^
       -vcodec hap ^
       -format hap_alpha  ^
       "%target%\%n_name%_Hap_alpha_v1.mov"
pause

Я использую этот код для выполнения чего-либо в данном файле. Но если имя файла содержит пробелы "имя файла Red_v3.mov", я получаю только "Red_v3.mov" в качестве вывода на %% ~ nxF, как получить имя, включая пробелы? Чтобы я мог заменить "" на "_", используя set% file_1%% f_name: = _%

@echo off
set file=%~dpnx1
for %%F in (%file%) do ( 
    Set f_ext=%%~nxF
    Set f_name=%%~nF
    )
echo %file% 
echo %f_ext%
echo %f_name%
pause

Спасибо Alex

1 Ответ

0 голосов
/ 02 мая 2018

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

@echo off
set "file=%~f1"
Set "f_ext=%~x1"
Set "f_name=%~n1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...