누군가가 문처럼이 경우 윈도우 배치 스크립트에 따옴표를 사용하는 제안 것 같다사용자 따옴표 if 문
IF "%FLAG%"=="1" (do something)
하지만, 내 경우에는 내가 큰 따옴표를 사용하여 스크립트를 일으킬 수 있다는 것을 발견 비교에서 실패합니다. 아무도 여기서 무엇이 잘못 될 수 있는지를 볼 수 있습니까?
추신 : 나는 스크립트에서 SETLOCAL ENABLEDELAYEDEXPANSION
입니다.
편집 : 에코 %의 FLAG %의 1.
EDIT2 때이 문에도 실패 : 이 내 스크립트입니다.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set CFG=C:\config
set LOBBYLIST=%CFG%\serverlist_lobby_server.txt
set DBDAEMONLIST=%CFG%\serverlist_daemon_server.txt
set LIST=
set FOLDER=
set /p OP= Delete 1.Lobby, 2.dbdaemon, All? (1,2,a)
:BEGIN
if %OP%==1 (GOTO DELETE_LOBBY_DUMP)
if %OP%==2 (GOTO DELETE_DBDAEMON_DUMP)
GOTO END
:DELETE_LOBBY_DUMP
set LIST=%LOBBYLIST%
set FOLDER=LobbyServer
GOTO START_DELETE
:DELETE_DBDAEMON_DUMP
set LIST=%DBDAEMONLIST%
set FOLDER=DBDaemonServer\Lobby
GOTO START_DELETE
:DELETE_ALL
set /a OP = OP + 1
GOTO BEGIN
:START_DELETE
for %%b in (%LIST%) do (
echo %%b
for /f %%a in (%%b) do (
echo %%a
dir \\%%a\c$\Services\%FOLDER%\*.dmp | find "dmp"
dir \\%%a\c$\WINDOWS\PCHEALTH\ERRORREP\UserDumps\*.hdmp | find "hdmp"
))
echo.
echo.
if %isAll%==1 (set isContinue=y
) ELSE (set /p isContinue= Continue? (y/n)
)
if %isContinue%==y (
for %%b in (%LIST%) do (
echo %%b
for /f %%a in (%%b) do (
echo %%a
del \\%%a\c$\Services\%FOLDER%\*.dmp
del \\%%a\c$\WINDOWS\PCHEALTH\ERRORREP\UserDumps\*.hdmp
)
)
)
if %isAll%==1 (GOTO DELETE_ALL)
GOTO END
:END
pause
어떤 방법으로 문제가 있습니까? 그리고 어떤 행 (일반적으로 "% FLAG %'"를 참조하지만 그 변수는 스크립트에 나타나지 않습니다). –
@Dennis : % isAll % == 1은 작동하지만 "% isAll %"== "1"은 작동하지 않습니다. 혼란스럽게해서 죄송합니다. – Stan
어떤 방식으로 작동하지 않습니까? –