批处理bat计算前N个月第一天的日期_DOS/BAT

【方案一】BAT + date.exe(GNU)

 

复制代码 代码如下:

 @echo off
rem 调用GNU for Win32的date.exe
set "gnuDate=C:/test/date.exe"
rem 指定月数
set MonthsAgo=1
for /f %%a in ('%gnuDate% -d "%MonthsAgo% months ago" "+%%Y-%%m-01"') do (
    set "DstDate=%%a"
    )
)
echo,%DstDate%
pause
 

【方案二】BAT + VBS

复制代码 代码如下:

@echo off
rem 指定月数
set MonthsAgo=2
>"%temp%/DateCalculate.vbs" echo strLastDate=DateAdd("m", -%MonthsAgo%, Date)
>>"%temp%/DateCalculate.vbs" echo strFmtDate=Right(Year(strLastDate),4) ^& Right("0" ^& Month(strLastDate),2) ^& "01"
>>"%temp%/DateCalculate.vbs" echo WScript.Echo strFmtDate
for /f %%a in ('cscript /nologo "%temp%/DateCalculate.vbs"') do (
    set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
echo,%DstDate%
pause

时间: 2024-10-28 11:37:04

批处理bat计算前N个月第一天的日期_DOS/BAT的相关文章

比较详细的手把手教你写批处理(willsort题注版)第1/5页_DOS/BAT

另,建议Climbing兄取文不用拘泥于国内,此类技术文章,内外水平相差极大:与其修正国内只言片语,不如翻译国外优秀著述. -------------------------------------------------------- 标题:手把手教你写批处理-批处理的介绍 作者:佚名 编者:Climbing 题注:willsort 日期:2004-09-21 -------------------------------------------------------- 批处理的介绍 扩展名

用批处理上传文件到ftp目录下的实现方法_DOS/BAT

为了快速将项目中开发的补丁程序通过ftp快速上传到linux下,感觉每次用flashFxp等工具麻烦),写了个简单的批处理,与大家分享一下. 将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上. 说明: 192.168.1.1 ftp ip 地址 21 端口 username 用户名 password 密码 temp.txt 保存ftp信息的临时文件,上传后删除 C:\Documents and Settings\user\桌

批处理bat计算上个月最后一天的日期_DOS/BAT

[方案一]BAT + date.exe(GNU) 复制代码 代码如下: @echo off rem 调用GNU for Win32的date.exe set "gnuDate=C:/test/date.exe" for /f %%a in ('%gnuDate% "+%%Y%%m01"') do (     for /f %%h in ('%gnuDate% -d "%%a 1 days ago" "+%%Y-%%m-%%d"

批处理(dos/bat)最完整人性化教程第1/2页_DOS/BAT

这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人.一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前.  先概述一下批处理是个什么东东.批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个

DOS批处理高级教程 第三章 FOR命令中的变量_DOS/BAT

FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来:      ~I          - 删除任何引号("),扩展 %I      %~fI        - 将 %I 扩展到一个完全合格的路径名      %~dI        - 仅将 %I 扩展到一个驱动器号      %~pI        - 仅将 %I 扩展到一个路径      %~nI        - 仅将 %I 扩展到一个文件名      %~xI       

批处理命令教学之复合语句连接符(&、&&和||)_DOS/BAT

帮助信息: 复制代码 代码如下: & [...] command1 & command2 用来分隔一个命令行中的多个命令.Cmd.exe 运行第一个命令,然后运行第二个命令. && [...] command1 && command2 只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令.Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才运行第二个命令. || [...] command1 || command2 只有

DOS批处理高级教程 第二章 DOS循环for命令详解_DOS/BAT

讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟都看不懂....所以才会有那么多批处理文章!!!!俺也照顾菜鸟,把FOR命令用我自己的方式说明下! 正式开始: 一.基本格式 FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母表示可替换的参数. (s

批处理下载FTP服务器上指定分钟数之前的文件_DOS/BAT

@echo off rem 指定FTP用户名 set ftpUser=xxx rem 指定FTP密码 set ftpPass=xxxxxxx rem 指定FTP服务器地址 set ftpIP=xxx.xxx.xxx.xx rem 指定待下载的文件位于FTP服务器的什么位置 set ftpFolder=/export/home/PROD/ntcdata rem 指定从FTP下载下来的文件存放到什么地方 set DownFolder=E:/ rem 指定下载几分钟前的文件 set MinsAgo=6

批处理bat下载FTP服务器上指定天数之前的文件_DOS/BAT

@echo off rem 指定FTP用户名 set ftpUser=asx rem 指定FTP密码 set ftpPass=asx-asx rem 指定FTP服务器地址 set ftpIP=172.19.103.7 rem 指定待下载的文件位于FTP服务器的什么位置 set ftpFolder=/export/home/PROD/ntcdata rem 指定从FTP下载下来的文件存放到什么地方 set LocalFolder=E:/Temp rem 指定下载几天前的文件 set DaysAgo