中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求教]一个涉及特殊字符的动态生成文件的问题
作者:
标题: [求教]一个涉及特殊字符的动态生成文件的问题 上一主题 | 下一主题
mrhjzhang
初级用户





积分 100
发帖 39
注册 2005-10-27
状态 离线
『楼 主』:  [求教]一个涉及特殊字符的动态生成文件的问题

情况是这样的。
上次在大侠们的教导下学会了不少DOS应用,很有乐趣。

不过这次遇到了一个棘手的问题。

首先说明缘由:
由于网上很多连续剧是双语的,所以需要分离声道,具体是先分离出音轨,然后用.avs语言分离音轨中的右声道,然后合并。主要麻烦在avs上。假设吧,连续剧有20集,就要生成20个avs.
名字依次为01.avs、02.avs、....、20.avs。

avs的内容为(假设第16集)
video =DirectShowSource("E:\潮爆大状\16.000",fps=24)
return GetRightChannel(video)

困难有两点:
1:生成的文件名中含有变化。
2:"\符号。

我草稿如下:
-----------------
setlocal EnableDelayedExpansion
set m=
set P=
set avs=.avs
set rtn=return GetRightChannel(video)
:::此处填入地址,注意末位\号.
set addpath=video =DirectShowSource("E:\潮爆大状\
:::此处填入FPS.
set fpss=.000",fps=25)
:::此处填入起始,步进,末尾中的"末尾".
set fg=20

for /L %%i in (1,1,%fg%) do (
set !m!=%addpath%%%i%fpss%>%%~ni%avs%
echo %rtn% >>%%~ni%avs%
)

首先字符串相加不知道如何操作,用+好像没用?写成%addpath%%%i%fpss%反而可以?
其次%%~ni%avs%文件也无法生成,或者生成但内容不对?


各位经验丰富的大侠,我初学DOS,是在不是很会,这种情况应该如何实现?

2006-6-24 16:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
mrhjzhang
初级用户





积分 100
发帖 39
注册 2005-10-27
状态 离线
『第 2 楼』:  

虾米?sos

2006-6-28 19:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
mrhjzhang
初级用户





积分 100
发帖 39
注册 2005-10-27
状态 离线
『第 3 楼』:  

求人不如求己,自己搞定了
@echo off
setlocal EnableDelayedExpansion


::此处填入地址.
set addpath=E:\下载文件夹\BT下载

::此处填入FPS.
set fpss=25

::此处填入步进的末尾.
set fg=13

cls

if /i %fg% GTR 9 goto up
goto low

:up

for /L %%i in (1,1,9) do @echo video =DirectShowSource("%addpath%\0%%i.000",fps=%fpss%)>"0"%%~ni".avs"
for /L %%i in (1,1,9) do @echo return GetRightChannel(video)>>"0"%%~ni".avs"
for /L %%i in (10,1,%fg%) do @echo video =DirectShowSource("%addpath%\%%i.000",fps=%fpss%)>%%~ni".avs"
for /L %%i in (10,1,%fg%) do @echo return GetRightChannel(video)>>%%~ni".avs"
goto :eof


:low

for /L %%i in (1,1,%fg%) do @echo video =DirectShowSource("%addpath%\%%i.000",fps=%fpss%)>%%~ni".avs"
for /L %%i in (1,1,%fg%) do @echo return GetRightChannel(video)>>%%~ni".avs"
goto :eof

2006-7-10 15:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: