【问题标题】:Batch File: Unknown Error [closed]批处理文件:未知错误[关闭]
【发布时间】:2013-06-18 20:36:36
【问题描述】:

我创建了一个批处理脚本,它将为我的站点创建 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

【问题讨论】:

  • 所以 - 我们可以断定它不起作用 - 如果它起作用了,您就不会发布问题。请说明它做什么或不做什么,您希望它不做什么或不做什么。
  • 抱歉,您的代码几乎无法阅读

标签: windows batch-file


【解决方案1】:

以下是我看到的错误:

Batch/CMD 区分大小写-变量名称方面敏感。

您使用 n 作为剧集编号,但后来您使用 N 作为其他内容的变量。特别是 N 里面有重定向操作符,这让 cmd 彻底迷惑了。

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

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

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

赋值,然后回显??

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

工作版本

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

我将变量 n 替换为 episode 以获得更好的可读性。 (我在取消 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2018-04-21
    • 2019-07-09
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多