Q:

Batch File Skipping If Statement

It seems that whenever I run my Batch file, everything will run, and it'll go into checkfiles, but it doesn't operate the if statement.  Nothing is returned, it just skips right over unto the last part of the code.  
:file_check
if exist "%psychedelia%\nhc.exe" (goto file_exists) else (timeout /t 1 /nobreak > output)
goto file_check

:file_exists
copy /Y "%~dp0version.txt" "%psychedelia%"

:checkfiles
echo in checkfiles
if exist "%psychedelia%\wa.exe" if exist "%psychedelia%\readme.txt" if exist "%psychedelia%\HD.BLB" if exist "%psychedelia%\smackw32.dll" if exist "%psychedelia%\setup95.exe" if exist "%psychedelia%\WAVistaWin7.exe" (
    echo MSGBOX "Thank you for installing the Neverhood.  You may now go to your desktop and click on the Orpheus shortcut to play!"  > %temp%\TEMPxmessage.vbs
    call %temp%\TEMPxmessage.vbs
    del %temp%\TEMPxmessage.vbs /f /q
    rename "%psychedelia%\nhc.exe" wa.exe
    timeout /t 1 /nobreak > output
    taskkill.exe /F /IM setup95.exe /T
) else ( 
    echo nonexistent
    pause
    timeout /t 1 /nobreak > output
    goto checkfiles
)

All help is greatly appreciated.  

A:

Only the last if exist on that line has parentheses, so the else only applies to that last one.   If any of the first ones evaluate to false, it will just skip the whole thing. 

A:

Try:
...
echo in checkfiles
for %%f in (wa.exe 
            readme.txt 
            HD.BLB 
            smackw32.dll 
            setup95.exe 
            WAVistaWin7.exe
           ) do if not exist "%psychedelia%\%%f" (
    echo %%f nonexistent
    pause
    timeout /t 1 /nobreak > output
    goto checkfiles
   )

:: all required files found

echo MSGBOX "Thank you for installing the Neverhood.  You may now go to your desktop and click on the Orpheus shortcut to play!"  > %temp%\TEMPxmessage.vbs
call %temp%\TEMPxmessage.vbs
del %temp%\TEMPxmessage.vbs /f /q
rename "%psychedelia%\nhc.exe" wa.exe
timeout /t 1 /nobreak > output
taskkill.exe /F /IM setup95.exe /T

It might be easier to maintain. 
In fact, you could even write
set requiredfiles=wa.exe readme.txt HD.BLB smackw32.dll setup95.exe WAVistaWin7.exe
for %%f in (%requiredfiles%) do if not exist "%psychedelia%\%%f" (
...

which would be even easier. 
BUT PLEASE ACCEPT Nate Hekman's ANSWER - This is just a BTW*

