Script you provided is not complete...
Here is the method to pass something to textfile....
GO
IF OBJECT_ID ('DT_ARC_PASSTOFILE') IS NOT NULL DROP PROC DT_ARC_PASSTOFILE
GO
CREATE PROC DT_ARC_PASSTOFILE (@PASSTOFILE VARCHAR(4000) )
AS
SET @PASSTOFILE = 'ECHO ' + CASE WHEN @PASSTOFILE = '' THEN '--ABC' ELSE @PASSTOFILE END + ' >> C:\ARCHIVE_SCRIPT.TXT'
EXEC MASTER..XP_CMDSHELL @PASSTOFILE , NO_OUTPUT
GO
EXEC DT_ARC_PASSTOFILE 'ANYTHING TILL 4000 CHARACTERS GET PRINTED INTO TEST FILE LOCATED ON C ROOT WITHOUT LINE TRUNCATED....'
CHEERS,
Prakash
Prakash Heda
Lead DBA Team - www.sqlfeatures.com
Video sessions on Performance Tuning and SQL 2012 HA