Board logo

标题: [求教]一个涉及特殊字符的动态生成文件的问题 [打印本页]

作者: mrhjzhang     时间: 2006-6-24 16:59    标题: [求教]一个涉及特殊字符的动态生成文件的问题

情况是这样的。
上次在大侠们的教导下学会了不少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,是在不是很会,这种情况应该如何实现?
作者: mrhjzhang     时间: 2006-6-28 19:32
虾米?sos
作者: mrhjzhang     时间: 2006-7-10 15:20
求人不如求己,自己搞定了
@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