У меня есть две классические страницы 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