2009-07-10 4 views

답변

1

당신은 당신이 download it here을 할 수있는, 슬립 명령을해야합니다.

다음 같은 것을 수행 할 수 있습니다

echo this is a test > test.txt 
SET x= 
:START 
CALL SET /a x = %x% +1 
rename test.* test.%x% 

CALL SET /a y = %x% * 25 

IF '%x%' == '300' GOTO END 

CALL SLEEP 25 
GOTO START 

:END 
4

글쎄, 이것은 너무 어려운 일이 아니다. 잘 알려진 배치 트릭의 무리 등이 있습니다 잘못 사용하여 (비표준 도구를 통합하는 데에서 당신을 저장하는) 잠을 우리가 다음에 올 수 핑 :

@echo off 
setlocal 
set n=0 
:start 
ren test.g test.go 
ping localhost -n 26>nul 2>&1 
ren test.go test.g 
set /a n+=25 
if %n% LSS 300 goto start 
endlocal 

setlocalendlocal은 우리가 만들고 수정하는 모든 환경 변수가 배치 파일 자체의 범위에만 유지되도록합니다. 모든 정상 및 에러 출력 (>nul 2>&1)를 버리는 상태 (제 핑 즉시되며 모든 후속 한 1 초 지연을 초래하기 때문에) 명령

ping localhost -n 26 >nul 2>&1 

25 초간 기다린다.

마지막으로 우리는 %n% 변수에서 지금까지 얼마나 오래 기다렸는지 추적하고 있으며 n이 여전히 300 이하인 경우에만 루핑을 계속합니다. 당신은 잘하지만, for 루프와 함께 할 수 있습니다 먼저 그것을 루프해야하는 빈도를 계산합니다

@echo off 
setlocal 
set n=300 
set /a k=n/25 
for /l %%i in (1,1,%k%) do (
    ren test.g test.go 
    ping localhost -n 26>nul 2>&1 
    ren test.go test.g 
) 
endlocal 

단지 시간의 계산 된 수를 반복.

0

Windows를 사용하는 경우 vbscript를 사용할 수 있다고 가정합니다. myscript.vbs로하고 명령 줄에서 위의 저장

Set objFS = CreateObject("Scripting.FileSystemObject") 
strFile1 = "file.txt" 
strFile2 = "new.txt" 
While 1=1 
    Set objFile1 = objFS.GetFile(strFile1) 
    objFile1.Name = strFile2 
    Set objFile1 = Nothing 
    WScript.Echo "sleeping.." 
    WScript.Sleep (25 * 60) 
    Set objFile2 = objFS.GetFile(strFile2) 
    objFile2.Name = strFile1 
    Set objFile2 = Nothing 
    WScript.Sleep (300 * 60) 
Wend 

c:\test> cscript /nologo myscript.vbs