Override file while backup database

I want to back up a database using this code

sqlcmd -S servername -Q "BACKUP DATABASE [DBName] TO DISK = 'C:\backup.bak'"

It works. But if the backup file already exists, the data gets appended to the file instead of replacing the file. Every time I call BACKUP DATABASE the file gets bigger.

Is there an option for BACKUP DATABASE to force a replace?


sqlcmd -S servername -Q "BACKUP DATABASE [DBName] TO DISK = 'C:\backup.bak' WITH INIT"

INIT does the trick. From MSDN:

INIT Specifies that all backup sets should be overwritten


WITH INIT is not enough. Should be WITH INIT, SKIP these days. Docs

Explanation: INIT overwrites only if some conditions are met. SKIP instructs to ignore those conditions.