![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 22:58 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 运算符不存在 |
| 可打印版本 1,058 / 4 |
| 第1楼 xueshan007050 | 发表于 2010-08-20 11:23 |
| 初级用户 发帖 18 积分 27 | |
|
运算符不存在 @echo off
setlocal EnableDelayedExpansion for /f "delims=" %%j in ('mediainfo "--Inform=General;%%Duration%%" "E:\temp\阿凡达\SAMPLE.mkv"') do ( echo %%j set var=%%j echo !var! set /a var=!var!/1000 echo !var! ) pause 上面for循环里的不用管,是正确的。%%j的值都是已经取到的了。 在我本机器上(windows server 2003系统)输出var变量的值都是正确的。 但是在 另外一台Server2003 系统上,运行set /a var=!var!/1000 这句的时候 就提示“运算符不存在” 这是什么原因呢? 是不是set /a 没有启用扩展?还是什么原因 请大侠指导。 |
|
| 第2楼 qinchun36 | 发表于 2010-08-20 14:06 |
| 高级用户 发帖 400 积分 609 | |
|
你用 set /a var/=1000 试试看行不行。
|
|
| 第3楼 xueshan007050 | 发表于 2010-08-30 15:29 |
| 初级用户 发帖 18 积分 27 | |
|
还是不行的 不行的。
是不是我上面取到的 %%j 是字符串的 不能进行数字操作? 我在我的本机上可以的,但是在别的环境下就不可以。 为什么呢? |
|
| 第4楼 qinchun36 | 发表于 2010-08-30 15:33 |
| 高级用户 发帖 400 积分 609 | |
|
mediainfo 应该是一个第三方工具,其他机器上放这个东西了么?
|
|
| 第5楼 xueshan007050 | 发表于 2010-08-31 09:26 |
| 初级用户 发帖 18 积分 27 | |
|
其他机器上放了这个东西了 谢谢各位大侠的参与。下面是我的代码
@echo off&setlocal EnableDelayedExpansion set folder=E:\temp for /d %%a in ("%folder%\*") do ( for /f %%b in ("%%a\*.mkv") do (set name=%%b echo [Info] echo Title=%%a echo BitRate=12000000 echo PkgLen=188 for /f "delims=" %%j in ('MediaInfo "--Inform=General;%%Duration%%" "%%b"') do ( set /a var=%%j/1000 echo Duration=!var! ) echo 测试输出%%a\%%~nb.Prf文件输出成功 ) ) pause ====================== 请注意一点:我上面已经写明白了,%%j能够取到正确的值了,关键是下面的。 " set /a var=%%j/1000 echo Duration=!var! " 这句不对头。 1.系统MS-DOS的版本都是5.2.3790 2.其他机器上Mediainfo第三方插件,加入环境变量和在Mediainfo.exe文件夹下使用都测试了。 3.关键是我的本机能够出现正常的数值,但是其他机器上就是提示”运算符不存在“。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |