batch-file - I want to retrieve data of particular date If user provide? Otherwise, it retrieves T-1 date which is currently fetching. Through Batch file
问题描述
I have created a batch file which retrieves T-1
data from the database. But I want to retrieve data of backdated data of date which user enter through cmd.
Can you please help me on this?
I want to retrieve data of particular date If user provide? Otherwise, it retrieves T-1 date which is currently fetching:
set qty=-1
:loop4weekends
set "separator1=-"
set "separator2=_"
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,now)
echo>>"%temp%\%~n0.vbs" d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_
echo>>"%temp%\%~n0.vbs" right(100+month(s),2)^&_
echo>>"%temp%\%~n0.vbs" right(100+day(s),2)^&_
echo>>"%temp%\%~n0.vbs" d
for /f %%a in ('cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a
del "%temp%\%~n0.vbs"
endlocal& set "YY=%result:~0,4%" & set "MM=%result:~4,2%" & set "DD=%result:~6,2%" & set "daynum=%result:~-1%"
:: if the daynum is a weekend then loop to get the friday
set "weekend="
if %daynum% EQU 1 set weekend=1&set "qty=-3"
if %daynum% EQU 7 set weekend=1&set "qty=-2"
if defined weekend goto :loop4weekends
set "day=%YY%%separator1%%MM%%separator1%%DD%"
set "day1=%YY%%separator2%%MM%%separator2%%DD%"
sqlcmd -U %SQLServerUserName% -P %SQLServerPassword% -S %MachineIP% -Q "exec P_SP @companyFundIDs=N'',@inputDate=N''" -d %ClientDB% -o "Fil_Trade_%day1%.csv" -s"," -W
ECHO CSV file has been generated successfully
pause
解决方案
您需要一个默认值,除非用户输入不同的内容。这很容易,因为set /p
当用户按下 ENTER 时,变量保持不变。因此,只需在询问用户之前定义一个默认值:
set "result=defaultValue"
set /p "result=Enter date ([ENTER] for default "%result%"): "
echo %result%
您应该添加一些代码来验证用户输入的字符串是否是有效日期。这是一个例子。
推荐阅读
- rest - POST 中的可变负载
- python - AtributeError "module" 对象没有属性 %name%
- python - confluent_kafka 挂起发布
- python - 从列表中返回对应于中值的索引
- arrays - 在 Python 中查找数组相等性的最佳方法是什么?(时间效率)
- android - 移除 ViewPager2 Overscroll 动画
- javascript - 异步和按顺序触发 Vuex 操作 - 我不明白什么?
- c# - 如何用随机图像制作对象?
- scala - (1 到 4).toSet 和 (1 到 4).to[scala.collection.immutable.Set] 之间的 Scala 区别?
- sql - 如何找到第一个最长的连续年份?