Tengo algunos archivos por lotes que utilizo para ayudar a automatizar el proceso de creación y recarga de bases de datos de desarrollo. Tiene sentido crear y mantener estos archivos por lotes en Visual Studio (es decir, en un proyecto VS Database). Se ven bastante simple, como esto:Visual Studio inserta caracteres no válidos en archivos por lotes
@echo off
echo Setting server and db from defaults.
set SERVERNAME=(LOCAL)
set DB=PLEDGES
echo Creating tables on server %SERVERNAME% and database %DB%
sqlcmd -S %SERVERNAME% -d %DB% -E -i DropAllTables.sql
sqlcmd -S %SERVERNAME% -d %DB% -E -i dbo.UserType.Table.sql
sqlcmd -S %SERVERNAME% -d %DB% -E -i dbo.RegisteredUser.Table.sql
echo Done creating tables.
El problema es que cuando les corro, esta es la salida:
C:\>
'' is not recognized as an internal or external command,
operable program or batch file.
Creating tables on server (LOCAL) and database PLEDGES
Done creating tables.
En otras palabras, Visual Studio es de alguna manera la inserción de forma invisible un conjunto de caracteres que el procesador de comandos de Windows interpreta como un comando, es decir, "∩╗┐". Una búsqueda en Google no arrojó nada sobre esto. ¿Alguien más se ha topado con esto? Pensamientos en una solución?
Tengo una solución alternativa (simplemente agregue una línea en blanco al comienzo de cada archivo, y mostrará el error, pero de lo contrario funcionará bien), pero el lado retentivo del yo se molesta cada vez que ejecuta uno de estos archivos.
Nota: La codificación se llama UTF-8, no se UTC-8 – Joey
@Johannes, gracias por señalarlo, lo he corregido. –
Gracias - Notepad ++ fue el consejo correcto. Es extraño que Visual Studio y cmd.exe no funcionen juntos en algo tan básico como un archivo de texto. Huh. –