-7

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

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

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

[从 pastebin 修补 - OP 没有明显原因“无法放置 HTML 标记”评论]

@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
4

1 回答 1

2

以下是我看到的错误:

Batch/CMD变量名区分大小写。

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

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

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

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

分配,然后回声??

我不知道你为什么要将文本分配给变量,如果你要做的只是回显它。您可以用 ECHO 和附加 (>>) 部分替换每个 SET 分配,您不会注意到前面提到的问题。

工作版本

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

我用episode替换了变量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
于 2013-06-22T04:53:44.450 回答