2009-12-31 6 views
52

적어도 하루에 한 번로드해야하는 Windows 상자에 호스팅 된 웹 페이지가 있습니다. 나의 현재 계획은 Internet Explorer를 열고 URL 안타 예약 된 작업을 생성하는 것입니다 :Windows에서 예약 된 작업을 통해 URL을로드하는 데 권장되는 방법

"C:\Program Files\Internet Explorer\iexplore.exe" myurl.com/script_to_run_daily.aspx 

이 설정을 간단하고 잘 작동을하지만, Internet Explorer가 실제로 열고 명중하기 때문에 그것은 해킹 나를 친다 이 URL. 이 페이지에서 다시 입력 할 필요가 없으며, 캐시 된 데이터를 파일에 저장합니다.

이렇게하는 더 매끄러운 방법이 있습니까? 중요한 경우, 이것은 VB.net 사이트입니다.

미리 감사드립니다.

+0

적절한 VB 스크립트를 사용하는 것이 더 좋은 방법이지만 작업 스케줄러의 설정 탭에서 한 시간 이상 실행하면 작업을 중지 할 수 있습니다. –

답변

106

, PowerShell을 갈 수있는 방법이 될 것입니다.

schtasks /create /tn "MyAppDailyUpdate" /tr "powershell -ExecutionPolicy unrestricted 
     -Command \"(New-Object Net.WebClient) 
       .DownloadString(\\\"http://localhost/cron.aspx\\\")\"" /sc DAILY /ru System 

이 :

powershell -ExecutionPolicy unrestricted -Command "(New-Object Net.WebClient) 
              .DownloadString(\"http://localhost/cron.aspx\")" 

당신은이 같은 예약 된 작업을 만들 수 있습니다 여기에 별도의이 .ps1 파일을 작성하지 않고, 예약 된 작업을 만드는 데 사용할 수있는 간단한 한 줄입니다 예는 매일 실행되도록 작업을 설정합니다. 자세한 옵션은 schtasks.exe documentation을 참조하십시오.

+0

쿼리 문자열을 포함하는 예제가 있습니까? (앰퍼샌드 이스케이프가 있습니까?) –

+0

@PaulGeorge가 앰퍼샌드를^&로 대체하여 트릭을 수행해야합니다. –

+5

이것은 나를위한 작은 따옴표, 앰퍼샌드에 대한 변경 사항이 없습니다 : powershell -ExecutionPolicy 제한되지 않음 - 명령 "(New-Object Net.WebClient) .DownloadString ('http : //localhost/cron.aspx? var1 = cat & var2 = dog') " –

5

가장 일반적인 명령 줄 http 요청 도구의 Windows 버전은 cURLwget입니다. 이 중 하나를 실행하는 예약 된 작업을 만들 수 있습니다. Windows Scripting Host 스크립트 내에서이 작업을 수행했습니다. 즉, URL 매개 변수를 즉석에서 루프하거나 작성해야하는 경우입니다.

+0

curl 및 wget에 대해 +1 –

+0

+1 많은 훌륭한 옵션에 대해 +1, 특히 Windows Scripting Host 아이디어가 마음에 들지만 완벽한 해결책이있는 추가 마일이 있기 때문에 Rick의 솔루션을 사용했습니다. 미래를위한 아이디어에 감사드립니다! –

38

PowerShell 스크립트를 예약 할 수 있습니다. 추신 : 꽤 강력하고 전체 .NET Framework에 액세스 할 수 있으며 변경도 가능합니다. 다음은 그 예입니다.

$request = [System.Net.WebRequest]::Create("http://www.example.com") 
$response = $request.GetResponse() 
$response.Close() 
+0

이것이 가장 깨끗한 해결책입니다. – Liam

+0

좋은 해결책입니다. –

17

또 다른 옵션은 VB Script입니다. 예를 들어 (file.vbs로 저장) :

레무스 Rusanu에 의해 지적
sSrcUrl = "http://yourdomain.com/yourfile.aspx" 
sDestFolder = "C:\yourfolder\" 
sImageFile = "filename.txt" 
set oHTTP = WScript.CreateObject("MSXML2.ServerXMLHTTP") 
oHTTP.open "GET", sSrcUrl, False 
oHTTP.send "" 
set oStream = createobject("adodb.stream") 
Const adTypeBinary = 1 
Const adSaveCreateOverWrite = 2 
oStream.type = adTypeBinary 
oStream.open 
oStream.write oHTTP.responseBody 
oStream.savetofile sDestFolder & sImageFile, adSaveCreateOverWrite 
set oStream = nothing 
set oHTTP = nothing 
WScript.Echo "Done..." 
+0

아, VBScript에 대해 생각해 봤어야합니다. 좋은 생각이야. +1하고 받아들입니다. 다른 사람들도 훌륭한 아이디어를 가지고 있었지만 완벽한 솔루션을 제시하기 위해 열심히 노력했습니다! 많은 분들께 감사드립니다. Rick! –

+0

우분투 서버에서 어떻게합니까? vbs에 대한 대안? 자바? –

5

This SuperUser.com answer은 훨씬 간단합니다.

cmd /c start http://example.com/somePage.html 

은보다 구체적으로, 여기가 Windows 예약 된 작업에서 보이는 방법은 다음과 같습니다 비록

enter image description here

,이 가능성이 배경의 기본 구성 브라우저를 실행합니다. 그것이 IE이어야한다면, 그 것이 구성되어야합니다. 이것은 가장 좋은 옵션입니다. 작업의 작업 단계로 직접 실행되는 솔루션을 갖는 것이 좋습니다. 모든 정보가 바로 있습니다. 간결한 경 우에도 텍스트 상자를 스크롤하지 않고도 명령의 대부분을 볼 수 있습니다.

WGET/CURL - 좋은 오히려

대안은 WGET는 cmd..start..url에 좋은 대안이 될 것입니다. I'm not the first to think of this. 단점은 Windows 용 WGET을 다운로드해야만 사용할 수 있다는 것입니다. 즉각적인 해결책은 아닙니다. 그러나 WGET은 더 가볍고 중요하게 당신에게 힘을 더 준다. 다른 종류의 URL 호출을 많이 보낼 수 있습니다.여기에는 POST, 사용자 정의 헤더 등과 같은 다양한 HTTP 메소드가 포함됩니다. Curl은 Wget 대신에 좋은 옵션입니다. 서로 다른 기능 세트를 가지고있어 중복되는 경우가 많습니다.

PowerShell을 - 명령도

PowerShell을하지 않는 것이 좋습니다는 "가벼운"옵션이 고려 될 수있다, 그러나 당신은 또한 지연의 비트가있는 PowerShell을 (닷넷 응용 프로그램 도메인을)를 로딩하고 있으며, 당신이 이것을 정기적으로하고 있다면 기억하기가 훨씬 더 어렵습니다. 따라서 PowerShell은 최상의 옵션이 아닙니다.

의 VBScript가 - 분명히

을 권장하지 않습니다, VBScript를 덜 추천입니다. 당신은 훨씬 더 많이 기억할 필요가 있으며, 대본은 상당히 큽니다. 스크립트를 보증하는 다른 단계가 없으면 예약 된 작업 내에서 직접 수행 할 수있는 작업을 수행하기 위해 완전히 별도의 리소스를 보유하지 마십시오. 다음과 같이 예약 된 작업을 만들 수 있도록,

+0

안녕하세요 @ 토드,이 솔루션은 백그라운드에서 실행되지 않는 브라우저를 열 것입니다 – MichaelMao

+0

배경 작업은 운영 체제의 요구 사항이 아니 었습니다. cmd로 처리하기는 쉽지만, 이러한 옵션과 함께 생각하면됩니다. – Todd

+0

너는 맞다, 나의 실종 – MichaelMao

8

, curlInvoke-WebRequest의 별칭입니다 : : 또한

는, 비슷한 질문을 참조

Action: Start a program 
Program/script: powershell 
Add arguments: curl http://www.example.com/foo/bar 

Invoke-WebRequest을 사용할 수도 있지만 curl은 더 간결합니다.

+0

항상 그렇듯이 정답은 항상 최후이다. cmd/c를 사용하면 반드시 필요하지 않은 브라우저 창이 열립니다. – Hypersapien

관련 문제