。嗨, 我在下面的脚本中,forfiles命令没有重定向到txtfile。
此外,如果你在脚本中做任何不同的事情我会很喜欢你的反馈。
@echo off
:: Date format from DD/MM/YYYY to YYYY.MM.DD
set DATESTAMP=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%
:: Output all to txt
>F:\Backups\SQLBackups-%DATESTAMP%.txt (
:: Backup and Copy loop.
setlocal enabledelayedexpansion
for %%i in (
DB1
DB2
DB3
) do (
set DATABASENAME=%%i
set BACKUPFILENAME=F:\Backups\!DATABASENAME!-!DATESTAMP!.bak
echo -- Backing Up Database !DATABASENAME! --
sqlcmd -E -S DBServer -d master -Q "BACKUP DATABASE [!DATABASENAME!] TO DISK = '!BACKUPFILENAME!' WITH DESCRIPTION = 'Full backup [!DATABASENAME!]', CHECKSUM, INIT, COMPRESSION, STATS"
echo.
echo -- Copying Database !DATABASENAME!--
robocopy F:\Backups\ Y:\DBServer\ !DATABASENAME!-!DATESTAMP!.bak
)
endlocal
:: Delete files older than 180 days
forfiles -p F:\Backups\ -s -m *.* -d "-180" /C "cmd /c del @path"
)
由于
答案 0 :(得分:1)
在编写时,除非出现错误,否则对文件执行forfiles
命令的del
命令不会产生任何输出。因此,假设没有错误,它将不会附加任何内容。
如果要将处理过的文件列表附加到日志中,请使用
forfiles -p F:\Backups\ -s -m *.* -d "-180" /C "cmd /c echo @path & del @path"