2012-12-10 4 views
1

배치 파일을 사용하여 invisible.vbs 파일을 생성 한 다음 삭제하면 오류와 함께 중단됩니다. 기본적으로 배치 파일에서이 파일을 만드는 것입니다.즉석에서 invisible.vbs를 만들 때 오류가 발생합니까?

C:\Users\HP\Desktop>"New Text Document.bat" 
CreateObject("Wscript.Shell").Run """" 
'WScript.Arguments' is not recognized as an internal or external command, operable program or batch file. 
'""""' is not recognized as an internal or external command, operable program or batch file. 

이 배치 파일에 무엇이입니다 :

내가 배치 파일을 실행할 때 내가 오류입니다

@ECHO OFF 
CD /D %~dp0 
ECHO\ CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0,False>>Invisible.vbs 
::What I want to do with the file is here 
DEL %CD%\invisible.vbs /Q /S 

내가 알 파일이 생성됩니다를하지만, 비어 있으므로 다른 배치 파일을 보이지 않게 만들기 위해 아무 것도하지 않습니다.

답변

3

echo 문에서 & 기호로 인해 발생합니다. 글자 그대로 ^&을 사용할 때는 배치 이스케이프 문자 ^으로 이스케이프 처리해야합니다. >> (기존에 추가) 대신 단일 출력 리디렉션 연산자 > (기존 덮어 쓰기)을 사용할 수도 있습니다.

@ECHO OFF 
CD /D %~dp0 
ECHO.CreateObject^("Wscript.Shell"^).Run """" ^& WScript.Arguments^(0^) ^& """", 0,False>Invisible.vbs 
::What I want to do with the file is here 
DEL %CD%\invisible.vbs /Q /S 

또 다른 팁은 파일을 던져 만들 때 %TEMP% 디렉토리 변수를 사용하는 것입니다.

+0

좋아,이 작동하지만 지금은 말한다 :'. 런은 이번에는 예상치 못한 일이었다. 지금 뭐야? –

+1

@JeffreyLin이 순간에 'ㅋ'가 예기치 않은 메시지가 표시되면 'ㅋ'바로 앞에있는 문자를 보면 원인을 찾을 수 있습니다. 배치에서, 괄호'()'는 특수 문자이며, 문자 그대로 사용하고 인용문 안에 포함되지 않은 경우에는'^ (^)'로 이스케이프해야합니다. 미안해. 답변을 업데이트했습니다. 고맙게도 에코 출력을 파일로 리디렉션 할 때 이러한 유형의 오류로 인해 실행 문제가 발생하지 않습니다. 그것의 성가신. –

+0

@JeffreyLin 배치에서 괄호'()'는 (범위 지정)을위한 특수 문자입니다. 일괄 적으로 ** 특수 문자를 사용하는 것은 여러 가지 ** 불만 사항이 있습니다. 일괄 처리 특수 문자는'% &()^~ <>'를 포함하며, 일부 특수 문자는 다른 특수 문자를 따라갈 때 다른 일을합니다. –

관련 문제