【发布时间】:2018-06-20 07:40:09
【问题描述】:
语言:批处理 + 一点 JScript。
主要思想: JScript 适用于一个程序,但不适用于另一个程序。
错误信息: Microsoft JScript 编译错误:条件编译已关闭。
我的问题是我试图从我的 pastebin 中获取一些信息到批处理变量中。我希望我的代码能够检查并执行网站上的代码。我已经让代码独立工作,但是当我将它添加到主程序时,我得到一个Microsoft JScript compilation error: Conditional compilation is turned off 错误。如果我自己运行相同的脚本,它可以完美运行,但是当我将它添加到主脚本时它会中断。
我很确定我添加的彩色文本脚本会破坏它,但我不能 100% 确定。 所以基本上,为什么网站数据代码自己工作,但不能与其他任何东西一起工作。
我该如何解决这个问题?
[不工作部分]菜单+彩色文字+网站信息
@echo off
color 0a
setlocal
call :initColorPrint
call :title
rem ---- Menu Stuff ----
:menu
call :title
echo.
echo (Type 'version' to see error)
echo.
call :colorPrint 09 "%time%"
call :colorPrint 06 "@"
call :colorPrint 0c "%username%"
set /p call=^>
if "%call%" =="version" goto :version
%call%
goto menu
:title
title CMD ^| User: %username%
exit /b
rem ---- This part doesn't work... ----
:version
@if (@a==@b) @end /*
@echo off
setlocal
call :stuff
timeout 1
echo.
echo %code%
set "code=%code%"
timeout 3
exit
:stuff
for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "https://pastebin.com/raw/wAtBQEeZ"') do (
set "code=%%I"
echo(%%I
)
exit /b
JScript */
var x=new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET",WSH.Arguments(0),true);
x.setRequestHeader('User-Agent','XMLHTTP/1.0');
x.send('');
while (x.readyState!=4) {WSH.Sleep(50)};
WSH.Echo(x.responseText);
rem ----- Color Stuff -----
:colorPrint Color Str [/n]
setlocal
set "str=%~2"
call :colorPrintVar %1 str %3
exit /b
:colorPrintVar Color StrVar [/n]
if not defined %~2 exit /b
setlocal enableDelayedExpansion
set "str=a%DEL%!%~2:\=a%DEL%\..\%DEL%%DEL%%DEL%!"
set "str=!str:/=a%DEL%/..\%DEL%%DEL%%DEL%!"
set "str=!str:"=\"!"
pushd "%temp%"
findstr /p /A:%1 "." "!str!\..\x" nul
if /i "%~3"=="/n" echo(
exit /b
:initColorPrint
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do set "DEL=%%a"
<nul >"%temp%\x" set /p "=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%.%DEL%"
exit /b
:cleanupColorPrint
del "%temp%\x"
exit /b
图片:
[工作中]网站信息代码
@if (@a==@b) @end /*
@echo off
setlocal
call :stuff
timeout 1
echo.
echo %code%
set "code=%code%"
timeout 3
exit
:stuff
for /f "delims=" %%I in ('cscript /nologo /e:jscript "%~f0" "https://pastebin.com/raw/wAtBQEeZ"') do (
set "code=%%I"
echo(%%I
)
exit /b
JScript */
var x=new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET",WSH.Arguments(0),true);
x.setRequestHeader('User-Agent','XMLHTTP/1.0');
x.send('');
while (x.readyState!=4) {WSH.Sleep(50)};
WSH.Echo(x.responseText);
工作图片:
【问题讨论】:
标签: batch-file jscript