将DateAdd结果传递给具有所需日期格式的批处理脚本中的url

时间:2017-03-27 22:40:02

标签: batch-file date-formatting dateadd

使用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中执行此操作?它需要在计划任务中运行。

1 个答案:

答案 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并有足够的方向让我开始。