首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批%%~n1未返回变量

批%%~n1未返回变量
EN

Stack Overflow用户
提问于 2017-06-27 07:26:17
回答 1查看 352关注 0票数 0

我有一个使用批处理和ffmpeg转换视频的脚本。但是,我不明白为什么%%~nf和%%~n1不返回文件名(没有格式)。我已经尝试过各种“%”来查看原因,虽然我完全失去了,因为%~1变量工作良好。

代码语言:javascript
复制
if not %Vcodec% == h264 if not %Acodec% == ac3 (echo Converting Video, Converting Audio
'C:\ffmpeg\bin\ffmpeg.exe -i "%~1" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K '%%~n1.mkv')

代码语言:javascript
复制
C:\Users\Desktop\to fix>if not mpeg4 == h264 if not mp3 == ac3 (
echo Converting Video, Converting Audio
 'C:\ffmpeg\bin\ffmpeg.exe -i "S02E01.avi" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K %~n1.mkv'
)

而不是SO2EO1。如果我再给它添加%,它就会返回

代码语言:javascript
复制
C:\Users\Desktop\to fix>if not mpeg4 == h264 if not mp3 == ac3 (
echo Converting Video, Converting Audio
 'C:\ffmpeg\bin\ffmpeg.exe -i "S02E01.avi" -map 0 -vcodec libx264 -scodec copy -acodec ac3 -b:a 640K %S02E01.mkv'
)

所以,我不明白为什么一个变量工作,而另一个变量不事件,尽管它应该?就像在例句中一样,我曾经让这个脚本“%~nf”.mkv工作。我是一个脚本新手,所以如果你提供了一个答案,一个解释或者一个解释链接就很好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-27 07:37:11

%1是一个内部变量,所以

代码语言:javascript
复制
'%~n1.mkv'

请参阅https://ss64.com/nt/syntax-args.html

%~n1将%1展开为没有文件扩展名C:\utils\MyFile的文件名,或者如果存在路径(没有尾随反斜杠),则为该路径中的最后一个文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44774500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档