批处理由当前时间获得上周时间段格式为yyyyMMdd

本文介绍了一个用于批量导入数据库的批处理脚本,该脚本能够自动生成BCP命令,实现对指定数据库表按日期分批导入一周的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中需要用BCP导入一个分天表的一周的数据,在这个需求中用批处理自动生成bcpin脚本,请教了一位同事,是个高手啊,给我写了一段脚本,现共享出来,bcpinweek.bat:

@reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-MM-dd /f>nul
@echo dt=weekday("%date:~0,10%",2)+6>%temp%\tmp.vbs
@echo wscript.echo dt>>%temp%\tmp.vbs
@for /f %%i in ('cscript /nologo %temp%\tmp.vbs') do @set tempweek=%%i
@set /a tempnum=%tempweek%-7
:LOOP
@echo dt=cdate("%date:~0,10%")-%tempweek%>%temp%\tmp.vbs
@echo wscript.echo dt>>%temp%\tmp.vbs
@for /f %%i in ('cscript /nologo %temp%\tmp.vbs') do @set tempdate=%%i
@echo bcp DBname..tablename in d:\databak\tablename_%tempdate:~0,4%%tempdate:~5,2%%tempdate:~8,2%.dat -Usa -P -Sservername -n
@set /a tempweek=%tempweek%-1
@if %tempweek% gtr %tempnum% goto LOOP



执行bcpinweek.bat >bcpinlog.txt
打开bcpinlog.txt内容如下:
bcp DBname..tablename in d:\databak\tablename_20100315.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100316.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100317.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100318.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100319.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100320.dat -Usa -P -Sservername -n
bcp DBname..tablename in d:\databak\tablename_20100321.dat -Usa -P -Sservername -n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值