批处理文件:未知错误

时间:2013-06-21 16:16:43

标签: windows batch-file

我创建了一个批处理脚本,它将为我的网站创建html文件。但它似乎没有用。我试图得到错误,但我不能

这里是: http://pastebin.com/r9n31UCS

我使用了pastebin,因为你不能在这里放置html标签。

[从pastebin修补 - 没有明显的理由“无法放置HTML标签”评论由OP]

@echo off
set n=1
:start
set /a p=n-1
set /a x=n+1
set A=^<html^>
set B=^<head^>
set C=^<title^>
set D=One Piece Episode %n%
set E=^<^/title^>
set F=^<script type^=^"text^/javascript^" src^=^"^/scripts^/jwplayer.js^" ^>^<^/script^>
set G=^<script type^=^"text^/javascript^"^>jwplayer.key^=^"atgAhLbG+xtxBl7CY0CgP8QhQhg2Rb67mVRQ8A^=^=^";^<^/script^>
set H=^<^/head^>
set I=^<body^>
set J=^<center^>
set K=^<b^>Episode %n%^<^/b^> 
set L=^<br ^/^> 
set M=^<div id^=^"myElement^"^>Loading the player...^<^/div^> 
set N=^<script type^=^"text^/javascript^"^> 
set O=jwplayer^(^"myElement^"^).setup^(^{ 
set P=file: ^"episodes^/op^(%n%^).mp4^", 
set Q=image: ^"Nexusserver0019.cloudapp.net/op/back.jpg^" 
set R=height: 360, 
set s=width: 640
set T=^}^)^; 
set U=^<^/script^>
set V=^<a href^=^"ep(%p%).html^"^> Episode %p% ^<^/a^>^&nbsp^&nbsp^&nbsp^&nbsp^&nbsp^<a href^=^"ep(%x%).html^"^> Episode %x% ^<^/a^>
set W=^<^/center^>
set X=^<^/body^>
set Y=^<^/html^>
echo %A% >> ep(%n%).html
echo %B% >> ep(%n%).html
echo %C% >> ep(%n%).html
echo %D% >> ep(%n%).html
echo %E% >> ep(%n%).html
echo %F% >> ep(%n%).html
echo %G% >> ep(%n%).html
echo %H% >> ep(%n%).html
echo %I% >> ep(%n%).html
echo %J% >> ep(%n%).html
echo %K% >> ep(%n%).html
echo %L% >> ep(%n%).html
echo %M% >> ep(%n%).html
echo %N% >> ep(%n%).html
echo %O% >> ep(%n%).html
echo %P% >> ep(%n%).html
echo %Q% >> ep(%n%).html
echo %R% >> ep(%n%).html
echo %S% >> ep(%n%).html
echo %T% >> ep(%n%).html
echo %U% >> ep(%n%).html
echo %V% >> ep(%n%).html
echo %W% >> ep(%n%).html
echo %X% >> ep(%n%).html
echo %Y% >> ep(%n%).html
echo Generating Episode %n% ...
set /a n=n+1
pause
goto start
pause

1 个答案:

答案 0 :(得分:2)

以下是我看到的错误:

批次/ CMD是关于变量名称的 敏感的。

您使用 n 作为剧集编号,但稍后您使用 N 作为其他内容的变量。特别是,N中有重定向运算符,这完全混淆了cmd。

尝试的第一个echo命令在执行前扩展为:

echo <html> >> ep(<script type="text/javascript"> ).html

您可以在那里看到多个重定向输出的明显问题。
(如果您在脚本开头注释掉“@echo off”,您可以自己看看。)

分配,然后回声??

我不知道你为什么要把文本分配给变量,如果你要做的只是回应它。你可以用ECHO和append(&gt;&gt;)部分替换每个SET赋值,你不会注意到前面提到的问题。

工作版

这是您的脚本版本,它创建一系列HTML文件,其中包含导航链接。我没有播放器的东西,看看它是否有效,但CMD脚本能很好地完成它的工作。

我将变量 n 替换为剧集,以提高可读性。 (我在取消SET / ECHO重复之前就完成了。)我还将输出文件保存在一个变量中,这样如果你决定稍后更改它,你只需要改变一行,而不是25行。

另外,我注意到你正在使用非中断空格字符实体ref(),但不使用尾随分号。 IE可能会按照您的意图解释它(DWIM),但这是错误的。所有CE引用必须以分号结尾。我也改变了。分号也必须被转义,否则cmd.exe会误解它。

@echo off
set episode=1
:start
set /a p=%episode%-1
set /a x=%episode%+1
set ofile=ep(%episode%).html

echo ^<html^>>>%ofile%
echo ^<head^>>>%ofile%
echo ^<title^>>>%ofile%
echo One Piece Episode %episode%>>%ofile%
echo ^<^/title^>>>%ofile%
echo ^<script type^=^"text^/javascript^" src^=^"^/scripts^/jwplayer.js^" ^>^<^/script^>>>%ofile%
echo ^<script type^=^"text^/javascript^"^>jwplayer.key^=^"atgAhLbG+xtxBl7CY0CgP8QhQhg2Rb67mVRQ8A^=^=^";^<^/script^>>>%ofile%
echo ^<^/head^>>>%ofile%
echo ^<body^>>>%ofile%
echo ^<center^>>>%ofile%
echo ^<b^>Episode %episode%^<^/b^> >>%ofile%
echo ^<br ^/^> >>%ofile%
echo ^<div id^=^"myElement^"^>Loading the player...^<^/div^> >>%ofile%
echo ^<script type^=^"text^/javascript^"^> >>%ofile%
echo jwplayer^(^"myElement^"^).setup^(^{ >>%ofile%
echo file: ^"episodes^/op^(%episode%^).mp4^", >>%ofile%
echo image: ^"Nexusserver0019.cloudapp.net/op/back.jpg^" >>%ofile%
echo height: 360, >>%ofile%
echo width: 640>>%ofile%
echo ^}^)^; >>%ofile%
echo ^<^/script^>>>%ofile%
echo ^<a href^=^"ep(%p%).html^"^> Episode %p% ^<^/a^>^&nbsp^;^&nbsp^;^&nbsp^;^&nbsp^;^&nbsp^;^<a href^=^"ep(%x%).html^"^> Episode %x% ^<^/a^>>>%ofile%
echo ^<^/center^>>>%ofile%
echo ^<^/body^>>>%ofile%
echo ^<^/html^>>>%ofile%


echo Generating Episode %episode% ...
set /a episode=%episode%+1
pause
goto start
pause