编辑:这是我的完整代码。
@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
由于 亚历
答案 0 :(得分:2)
您的代码的问题在于您没有使用引号,但绝对不需要将命令行参数设置为环境变量,然后使用FOR
命令再次拆分文件名。您已经可以使用命令行参数执行此操作。
@echo off
set "file=%~f1"
Set "f_ext=%~x1"
Set "f_name=%~n1"