使用DateAdd我可以添加或减去所需的天数,但我不知道如何以所需的格式(mmddyyyy)获得结果并将其添加到网址可以通过wget下载。
@ECHO Off
for /f "tokens=*" %%i in ('DateAdd -30') do set minusonemonth=%%i
for /f "tokens=*" %%i in ('DateAdd 90') do set addthreemonths=%%i
echo %minusonemonth%
echo %addthreemonths%
或
@ECHO Off
call dateadd -30
set minusonemonth=%minusonemonth%
call dateadd 90
set addthreemonths=%addthreemonths%
echo %minusonemonth%
echo %addthreemonths%
返回的日期应设置为变量,然后添加到url字符串,类似于下面,所以我可以使用wget下载文件:
url="http://www.example.com/load?pStartDate=${minusonemonth}&pEndDate=${addthreemonths}&pServiceID=12552"
如何在Windows中执行此操作?它需要在计划任务中运行。
答案 0 :(得分:0)
由于Web服务器对用户进行身份验证的方式,我不得不使用Invoke-WebRequest。 BitsTransfer和WebClient都没有工作,但都使用了我放在我们自己的Web服务器上的简单txt文件。
$start = (get-date).AddMonths(-1).ToString('MMddyyyy');
$end = (get-date).AddMonths(3).ToString('MMddyyyy');
$url = "https://example.com/schedule/Load?pStartDate=$start&pEndDate=$end&pServiceID=1000";
$path = 'C:\Users\public\Documents\report.csv';
# use BitsTransfer (fails due to web server behavior)
#ipmo BitsTransfer;
#Start-BitsTransfer $url $path;
# use WebClient (fails due to web server behavior)
#$client = New-Object System.Net.WebClient;
#$client.DownloadFile($url, $path);
# use Invoke-WebRequest
Invoke-WebRequest $url -OutFile $path;
感谢Rojo建议使用PowerShell并有足够的方向让我开始。