中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 18:05
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » [求教]一个涉及特殊字符的动态生成文件的问题
可打印版本  1,173 / 2
第1楼 mrhjzhang 发表于 2006-06-24 16:59
初级用户 发帖 39 积分 100
[求教]一个涉及特殊字符的动态生成文件的问题
情况是这样的。
上次在大侠们的教导下学会了不少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,是在不是很会,这种情况应该如何实现?
第2楼 mrhjzhang 发表于 2006-06-28 19:32
初级用户 发帖 39 积分 100
虾米?sos
第3楼 mrhjzhang 发表于 2006-07-10 15:20
初级用户 发帖 39 积分 100
求人不如求己,自己搞定了
@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
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023