- for 循环中使用管道符,要加 ^ 符号,例如:
- for /f “delims=” %%a in (‘dir /b^|findstr /l “.avi .mp4 .mkv”‘)
- for /f “delims=” %%a in (‘certutil -hashfile “%%i” md5 ^| findstr /X “[a-z0-9]*”‘)
- 使用双重for来提取字符串或合并打印输出,如:
- for /f “delims=” %%i in (‘dir/s/b *.mp3 *.m4a’) do ( for /f “delims=” %%a in (‘certutil -hashfile “%%i” md5 ^| findstr /X “[a-z0-9]*”‘) do ( echo %%a %%i ) )
- 如果使用for循环处理文件的内容,以双引号隔断,则for参数去掉双引号,参数间使用 ^ 符号连接,比如:
- for /f tokens^=^1^,2^ delims^=^” %%b in (“%%L”) do (
- for 中 usebackq用途为指明后续 () 中参数为文件名,比如
- for /f “usebackq” %%a in (“C:\Documents and Settings\Administrator\桌面\note.txt”) 可读取文件note.txt
- for /f “delims=” %%a in (“C:\Documents and Settings\Administrator\桌面\note.txt”) ,则把()中当作是字符串处理
- if 的字符串不等于使用方法 if not str1 == str2,比如
- if not !last_key! == %%b () …
2024-12-02
window bat批处理编程技巧
2024-10-10
2024-09-24
水质不同单位换算
TDS ÷ 17.847 = DH
DH ÷ 5.61 = mmol/L
比如
TDS=340
则 DH = 19 mmol/L=3.39
参考: https://www.zhihu.com/tardis/zm/art/415388318?source_id=1005
http://up1.goepe.com/js/fujian/1320371337.pdf
2024-07-23
windows cmd命令行下批量变更文件名
批处理中变量含义参考:https://blog.csdn.net/albertsh/article/details/102985590
call命令使用参考https://www.hxstrive.com/subject/windows_bat.htm?id=78
返回值处理参考:https://blog.csdn.net/linux__kernel/article/details/7055267
@echo off
setlocal enableDelayedExpansion
2024-07-15
常用DOS批处理
setlocal enabledelaydexpansion
delayedexpansion 说明见:https://blog.csdn.net/rhcgrys/article/details/124283862
- 批量for循环转码文件(或修改文件后缀)
for /f “delims=” %%a in (‘dir /b^|findstr /l “.avi .mp4 .mkv”‘) do (
if not exist “%%~na.mpeg” (
ffmpeg -i “%%~a” -c:v mpeg2_qsv -qscale 8 -c:a mp3 -vf subtitles=”filename=%%~na.srt:charenc=GBK” “%%~na.mpeg”
)
)
注:修改for命令,可同时处理多种视频文件转码mpeg
2. 获取所有系统服务详细信息,比如提取系统服务执行文件路径
@for /f “tokens=1,2 delims= ” %i in (‘sc query state^=all ^|findstr SERVICE_NAME’) do ( @sc qc %j | findstr BINARY_PATH_NAME >> svr.lst)