CMD扫描目录内的文件,并将日期最新的文件通过ftp上传到服务器

1、新建批处理脚本,命名为upload_dbbak.bat存在C:

::批处理注意事项,等号前后不要留空格,括号和关键词之间要留空格
@echo off
setlocal enabledelayedexpansion
set day=%date:~0,10%
for /f "delims=" %%a in ('dir /s/tc "C:DBBackup"') do (
set row=%%a
set rowdate=!row:~0,10!
::echo !rowdate!
if !rowdate!==%day% (
set bakFilePath=!row:~-46!
)
)

set bakFilePath="C:DBBackup!bakFilePath!"
echo C:curlcurl.exe -u DB_BAK_COPY:123456 -T !bakFilePath! ftp://192.168.23.234/DB_BAK.bak > "C:uploadDo.bat"call "C:uploadDo.bat"
pause

2、新建批处理脚本uploadDo.bat,内容留空,由脚本upload_dbbak.bat生成

3、打开sql server configuration manager(sql server 配置管理器),查看当前sql server(mssqlserver)服务的登录身份是哪个(local system、local service、network service)

4、右键uploadDo.bat->属性->安全->编辑->添加-> 高级->立即查找->找到对应的用户身份(我这里是network service),赋予该用户所有权限,点击确定保存

5、在ssms里执行脚本

exec master..xp_cmdshell 'C:upload_dbbak.bat'

如果第四步不赋权,这里会报拒绝访问的错误

确定执行成功后,将该脚本配置到维护计划内,定时执行即可;

!!!转发请注明出处和作者名称。 !!!转发请注明出处和作者名称。 !!!转发请注明出处和作者名称。 重要的事,说三遍。
原文地址:https://www.cnblogs.com/mahatmasmile/p/14336583.html