楼 主
运算符不存在
发表于 2010-08-20 11:23 · 中国 山东 济南 联通
初级用户
★
积分 27 发帖 18 注册 2010-03-18 15:26 UID 162471 性别 男
状态 离线
@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 楼
发表于 2010-08-20 14:06 · 中国 北京 联通
高级用户
★★★
据说是李先生
积分 609 发帖 400 注册 2008-04-23 15:55 UID 116706 性别 男
状态 离线
你用 set /a var/=1000 试试看行不行。
第 3 楼
还是不行的
发表于 2010-08-30 15:29 · 中国 山东 济南 联通
初级用户
★
积分 27 发帖 18 注册 2010-03-18 15:26 UID 162471 性别 男
状态 离线
不行的。
是不是我上面取到的 %%j 是字符串的
不能进行数字操作?
我在我的本机上可以的,但是在别的环境下就不可以。
为什么呢?
黑白世界 搞得懂?搞不懂?
第 4 楼
发表于 2010-08-30 15:33 · 中国 北京 联通
高级用户
★★★
据说是李先生
积分 609 发帖 400 注册 2008-04-23 15:55 UID 116706 性别 男
状态 离线
mediainfo 应该是一个第三方工具,其他机器上放这个东西了么?
第 5 楼
其他机器上放了这个东西了
发表于 2010-08-31 09:26 · 中国 山东 济南 联通
初级用户
★
积分 27 发帖 18 注册 2010-03-18 15:26 UID 162471 性别 男
状态 离线
谢谢各位大侠的参与。下面是我的代码
@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学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正