2013-09-07 3 views
0

im пытается сделать пакетный скрипт под Windows. чтобы установить Конфигурации игры под названием «Ragnarok International».Batch Script для настройки игры

И, пожалуйста, не рассказывайте «Простой установщик», потому что идея сделать это, его 1 учебный пакет и два включены в личную версию автоконтента «Ragnarok International», этот пакет, для «Linux/Windows/Mac» OS X ". и я думаю, что он лучше включил простой скрипт в пакетном режиме для Windows, чтобы настроить и сделать ярлыки.

Ну им пытаются с последующей Код:

@echo off 

color A 
title Ragnarok International 
set DIR="%CD%" 
set PWD=%CD%\wine\data\drive_c\software 

REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop 
FOR /F "usebackq tokens=3 skip=4" %%i in (`REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) DO SET DESKTOPDIR=%%i 
FOR /F "usebackq delims=" %%i in (`ECHO %DESKTOPDIR%`) DO SET DESKTOPDIR=%%i 
set IRODIR="%DESKTOPDIR%\Ragnarok International" 



echo ===========Configuring Software========= 
echo. 

if exist  "%IRODIR%" (
if not exist "%IRODIR%\Ragnarok Classic.lnk" goto make_icr 
if not exist "%IRODIR%\Classic Setup.lnk" goto make_ics 
if not exist "%IRODIR%\Setup.lnk" goto make_setup 
if not exist "%IRODIR%\Ragnarok Replay.lnk" goto make_replay 
if not exist "%IRODIR%\Ragnarok.lnk" goto make_ragnarok 
) 

cd "%DESKTOPDIR% 
echo "Make the Directory" 
If NOT exist "%IRODIR%" md "%IRODIR%" goto shortcuts 

:shortcuts 
echo. 
echo "Make the Shorcuts" 
echo. 

:make_icr 
echo "Ragnarok Classic" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Ragnarok Classic.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\ClassicRO.exe" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_ics 
echo "Classic Setup" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = %IRODIR%\Classic Setup.lnk >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%"\Setup_Classic.exe >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_setup 
echo "Setup" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = %IRODIR%\Setup.lnk >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%"\Setup.exe >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_replay 
echo "Ragnarok Replay" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = %IRODIR%\Ragnarok Replay.lnk >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%"\Ragexe.exe 1rag1 Replay >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 

:make_ragnarok 
echo "Ragnarok" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = %IRODIR%\Ragnarok.lnk >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%"\Ragnarok.exe >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 
goto iro 

echo ===========Configuring Software========= 
pause 

:iro 
echo. 
start /b %windir%\explorer.exe "%IRODIR%" 

хорошо, Ошибки в первом «если не существует» покажи мне «и» его не reconized команду или функцию (что ее стараясь прочитать Путь C: \ Documents and Settings)

И еще один сбой, когда скрипт пытается сделать shorcuts: C: \ DOCUME ~ 1 \ ADMINI ~ 1 \ CONFIG ~ 1 \ Temp \ 755-14902-9577- 25159.vbs (2, 15) Microsoft VBS Ошибка компиляции cript: Ожидаемый конец отчета

«Настройка» C: \ DOCUME ~ 1 \ ADMINI ~ 1 \ CONFIG ~ 1 \ Temp \ 31294-32230-10280-4385.vbs (2, 1) Microsoft VB Ошибка выполнения сценария: требуется объект: 'Setup'

Ну, это не работает, кто-то может помочь мне исправить сценарий. Я не знаю, как сделать это в Batch, для меня его более легко Bash XD.

ответ

2
FOR /F "tokens=2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop^|findstr /C:"REG_SZ" /C:"REG_EXPAND_SZ"') DO SET "DESKTOPDIR=%%j" 

У меня нет подсказки от VBS, извините.

Дополнительно, это не правильно:

If NOT exist "%IRODIR%" md "%IRODIR%" goto shortcuts 

вы можете иметь только одну команду в каждой строке здесь:

If NOT exist "%IRODIR%" (
    md "%IRODIR%" 
    goto shortcuts 
) 
+0

Спасибо за этот ответ, кажется, проблема в том, что он не смог создать каталог с md в «if not»: Если НЕ существует% IRODIR% cd "% DESKTOPDIR%" md "Ragnarok International" = " International "не распознается как внутренняя или внешняя команда, программа или командный файл. Некоторая идея ??? – inukaze

+0

Посмотрите на 'echo% desktopdir%', что он показывает? – Endoro

+0

DESKTOPDIR = C: \ Documents and Settings \ Администратор \ Escritorio – inukaze

0

Спасибо за все, Это решаемые. Пакетная Script Заключительный код является продолжение ->

@echo off 

color A 
title Ragnarok International 
set DIR="%CD%" 
set PWD=%CD%\wine\data\drive_c\software 
C: 
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop 

FOR /F "tokens=2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop^|findstr /C:"REG_SZ" /C:"REG_EXPAND_SZ"') DO SET "DESKTOPDIR=%%j" 

FOR /F "usebackq delims=" %%i in (`ECHO %DESKTOPDIR%`) DO SET DESKTOPDIR=%%i 

set IRODIR=%DESKTOPDIR%\Ragnarok International 



echo ===========Configuring Software========= 
echo. 
echo DESKTOPDIR = %DESKTOPDIR% 
echo %IRODIR% 


cd "%DESKTOPDIR%" 
if exist  "%IRODIR%" (echo. 
if not exist "%IRODIR%\Ragnarok Classic.lnk" goto make_icr 
if not exist "%IRODIR%\Classic Setup.lnk" goto make_ics 
if not exist "%IRODIR%\Setup.lnk" goto make_setup 
if not exist "%IRODIR%\Ragnarok Replay.lnk" goto make_replay 
if not exist "%IRODIR%\Ragnarok.lnk" goto make_ragnarok 
) 

:shortcuts 
echo. 
echo "Make the Directory" 
cd "%DESKTOPDIR%" 
echo "Make the Shorcuts" 

If NOT exist "%IRODIR%" (
    md "%IRODIR%" 
    cd "%IRODIR%" 
    goto shortcuts 
    echo. 
) 
echo. 

:make_icr 
echo "Ragnarok Classic" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Ragnarok Classic.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\ClassicRO.exe" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_ics 
echo "Classic Setup" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Classic Setup.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\Setup_Classic.exe" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_setup 
echo "Setup" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Setup.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\Setup.exe" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

:make_replay 
echo "Ragnarok Replay" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Ragnarok Replay.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\Ragexe.exe" >> %SCRIPT% 
echo oLink.Arguments = "1rag1 Replay" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 

:make_ragnarok 
echo "Ragnarok" 
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" 
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% 
echo sLinkFile = "%IRODIR%\Ragnarok.lnk" >> %SCRIPT% 
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% 
echo oLink.TargetPath = "%PWD%\Ragnarok.exe" >> %SCRIPT% 
echo oLink.WorkingDirectory = "%PWD%" >> %SCRIPT% 
echo oLink.Save >> %SCRIPT% 
cscript /nologo %SCRIPT% 
del %SCRIPT% 
echo. 

echo ===========Configuring Software========= 
goto iro 

pause 

:iro 
echo. 
start /b %windir%\explorer.exe "%IRODIR%" 

Это работает идеально подходит для этого предложить, спасибо Endoro за помощь мне с этим сценарием.