cmd指令,bat脚本完美
cmd指令的剖析
- %查看相对路径或是源目标
- %~x查看文件名后缀
- %~n查看文件名不含后缀
- %~z查看大小
- %~s查看绝对简写路径
- %~f查看绝对路径
- %~d查看盘符
- %~t查看修改时间
- if [not] defined variable 可以判断变量是否有内容
- %~I 删除外围"引号
- %~fI 完整路径
- %~dI 驱动器号
- %~pI 路径
- %~nI 文件名
- %~xI 文件扩展名
- %~dpI: 驱动器号和路径
- %~nxI: 文件名加扩展名
- 命令文件连接符
- *, ? 文件通配符
- “” 字符串界定符
- ^ 转义符,其后面的特殊字符按原样输出
- | 命令管道符
- >> 文件重定向符
- @ 命令行回显屏蔽符
- / 参数开关引导符
- : 批处理标签引导符
- % 批处理变量引导符
- 组合命令: &
- 用法: 第一条命令 & 第二条命令 [& 第三条命令…]
- 同时执行多条命令,而不管命令是否执行成功。
- &&
- 用法: 第一条命令 && 第二条命令 [&& 第三条命令…]
- 同时执行多条命令,当碰到执行出错的命令将不执行后面的命令,如果一直没有出错则一直执行完所以命令。
- ||
- 用法: 第一条命令 || 第二条命令 [|| 第三条命令…]
- 同时执行多条命令,当碰到执行正确的命令将不执行后面的命令,如果一直没有出现正确执行的命令则一直执行完所以命令。
- | 管道命令
- 用法: 第一条命令 | 第二条命令 [| 第三条命令…]
- 将第一条命令的结果作为第二条命令的参数来使用
- > , >>, 输出重定向命令
- 将一条命令或某个程序输出结果重定向到特定文件中。> 与 >> 的区别在于:
- > 会清除原有文件中的内容后写入指定文件,
- >> 只会追加内容到指定文件中,而不会改变其中的内容。
- <, >&, <&
- < 从文件中而不是键盘中读入命令输入。
- >& 将一个句柄的输出写入到另一个句柄的输入中。
- <& 从一个句柄读入输入并将其写入到另一个句柄输出中。
- set [[/a [expression]] [/p [variable=]] string]
- % 目录(current directory)
- TE% 日期
- %TIME% 时间
- %RANDOM% 随机数
- (,) 分组
- ,-,*,/,% 算法
- <<, >> 逻辑移位
- &, |, ^ 位运算
cmd指令与.bat脚本的注意事项与区分
实际上,在命令行中,单个%号才会起作用,而在.bat脚本中,有些作用域也就是大括号中的%号不变,作用域外的%号要变成两个%号。
cmd指令中的for循环结构
第一种是(x,y,z)从x到z(x,z都是数字),步长为y.例子中是从1到5,步长为1
for /l %i in (1,1,5) do
第二种是(x,y,z)表示就是在x,y,z三个值的时候
for %i in (1,2,3) do
第三种是一种带参数的for循环,tokens是列,skip是跳跃间隔,delims= 表示换行符分隔。表示找这个头文件中,每次换行的值的最后面的文件,全部输出到一个头文件中,如有扩展可以自行修改。
for /f "tokens=2 skip=1 delims= " %i in (.\include\crow.h) do type .\include\crow\%~nxi >> amalgamate\crow_all.h
若是另起一个.bat文件则需要把%号改成%%
for /f "tokens=2 skip=1 delims= " %%i in (.\include\crow.h) do type .\include\crow\%%~nxi >> amalgamate\crow_all.h
copy指令的妙用
如:把文件合并
copy /b 2.txt 3.txt 4.txt 5.txt
上面是合并指定txt类型,下面是合并所有这种txt类型的文件
type *.txt >> 0.txt
@echo的用途
一般是用来当做console.log来使用,@echo后面一律视为文本
bat脚本文件实战[需要结合ffmpeg使用]
下面文件保存为slice.bat,用于截取mp4片段
’@echo off
chcp 65001
:again
cls
echo mp4名:
set /p x=
echo 终点时间(秒:00):
set /p z=
call ffmpeg -ss 00:00:00.00 -to 00:00:%z% -i %x%.mp4 -vcodec copy -acodec copy %x%_.mp4
pause
下面文件保存为gtime.bat,可以获取mp4的时间
@echo off
chcp 65001
:again
cls
echo mp4名:
set /p x=
call ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i %x%.mp4
pause
下面文件保存为ts2m.bat,可以把.ts文件连接到一个mp4文件
@echo off
chcp 65001
:again
cls
echo 开始位:
set /p x=
echo 结束位:
set /p y=
set s=
for /l %%i in (%x%,1,%y%) do (if %%i equ %x% (set s=^"concat^:%%i.ts) else (call set s=%%s%%^|%%i.ts))
set s=ffmpeg -i %s%" -acodec copy -vcodec copy o.mp4
echo %s%
call %s%
pause
下面文件保存为m2ts.bat,可以把.mp4文件全部转为ts文件,标识符一般用_
@echo off
chcp 65001
:again
cls
echo 标识符:
set /p str=
echo 开始位:
set /p x=
echo 结束位:
set /p y=
echo for /l %%i in (%x%,1,%y%) do (ffmpeg -i %str%%%i.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb %%i.ts)
for /l %%i in (%x%,1,%y%) do (ffmpeg -i %str%%%i.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb %%i.ts)
pause
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbjagc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01