Классическая страница ASP Вызов сценария - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть две классические страницы asp, на которых мне пришлось вызывать пакетный скрипт. Первый работает:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>    
<%'Roda o arquivo BAT para chamada do script powershell
Set wshell = CreateObject("WScript.Shell") 
wshell.Run "\\w102xnk172\c$\inetpub\wwwroot\DCT_NEW\App\copy_items.bat" 
Set wshell = Nothing

'Cria o arquivo .txt de bloqueio, que o script powershell excluirá em sua finalização.
Dim fs,tfile
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set tfile = fs.CreateTextFile("\\w102xnk172\c$\inetpub\wwwroot\DCT_NEW\DB\running_script.txt")
tfile.Close
Set tfile = Nothing
Set fs = Nothing

'Quando não existir mais o arquivo, a interface continua.
filename = "running_script.txt"
path_db = "\\w102xnk172\c$\inetpub\wwwroot\DCT_NEW\DB\"
path_file = "\\w102xnk172\c$\inetpub\wwwroot\DCT_NEW\DB\running_script.txt"

Set fs = Server.CreateObject("Scripting.FileSystemObject")

While fs.FileExists(path_file) = True
Wend
%>

Этот код запускает мой сценарий и создает «running_script.txt», а затем проверяет, все ли еще он завершается, поэтому код не запускается до его завершения. Мой скрипт, в конце, удалите этот файл. Это работает нормально, а с другим все так же просто:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
    page = REQUEST.QUERYSTRING("page")

    If page = "ofs" Then
        Set wshell = CreateObject("WScript.Shell") 
        wshell.Run "C:/www/gppintranet/scripts/ofs.bat"
        Set wshell = Nothing
    End If

    response.Redirect("/gppintranet/view/home.asp")
%>

Но почему-то это не вызывает мой сценарий. Я автоматически перенаправлен на домашнюю страницу. Я отладил, он входит в мой оператор If и скрипт работает правильно.

Я запускаю это приложение в IIS 10.0.15063.0, если оно используется. Что случилось? Я не вижу разницы между ними.

РЕДАКТИРОВАТЬ : Я запустил нерабочий сценарий в рабочей среде, и он там тоже не работал. Я проверил, и оба IIS имеют ту же версию и с одинаковыми настройками. Рабочий скрипт:

@echo off
start "" http://w102xkj172/DCT_MASTER/update_dct_p2p.asp
timeout /T 5

echo Waiting for P2P DCT's information update...
:verify_locked
if exist \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_MASTER\p2p_running.txt (
    goto :verify_locked
) else (
    echo Copying files...
    robocopy /IS \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT\DB\ \\w102xnk172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_LINE_P\DB\ DCT.mdb
    robocopy /IS \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT\DB\ \\w102xnk172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_LINE\DB\ DCT.mdb
    robocopy /IS \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT\DB\ \\w102xnk172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_LINE_1\DB\ DCT.mdb
    robocopy /IS \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT\DB\ \\w102xnk172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_LINE_3\DB\ DCT.mdb
    robocopy /IS \\w102xkj172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT\DB\ \\w102xnk172\c$\inetpub\wwwroot\PC_REPORTS\exemplo\DCT_LINE_4\DB\ DCT.mdb
)
exit

И нерабочий это:

@echo off
START "" http://example.aspx
...