code

Visual Studio가 배치 파일에 잘못된 문자를 삽입합니다.

codestyles 2020. 11. 20. 08:58
반응형

Visual Studio가 배치 파일에 잘못된 문자를 삽입합니다.


개발 데이터베이스를 만들고 다시로드하는 프로세스를 자동화하는 데 사용하는 배치 파일이 있습니다. Visual Studio (예 : VS 데이터베이스 프로젝트)에서 이러한 배치 파일을 만들고 유지 관리하는 것이 좋습니다. 다음과 같이 매우 간단합니다.

@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.

문제는 내가 실행할 때 이것이 출력이라는 것입니다.

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.

즉, Visual Studio는 Windows 명령 프로세서가 명령으로 해석하는 문자 집합 (예 : "∩╗┐")을 보이지 않게 삽입합니다. Google 검색은 이것에 대해 아무것도 반환하지 않았습니다. 다른 사람이이 문제를 겪은 적이 있습니까? 수정에 대한 생각?

해결 방법이 있습니다 (각 파일의 시작 부분에 빈 줄을 추가하면 오류가 표시되지만 그렇지 않으면 잘 작동합니다).이 중 하나를 실행할 때마다 항문 유지 측면이 짜증납니다. 파일.


무슨 일이 일어나고 있는지 VisualStudio가 영리하고 배치 파일이 ASCII가 아닌 문자 인코딩 (예 : 파일이 UTF-8 또는 다른 비 ASCII 인코딩)으로 저장되었다는 사실로부터 사용자를 숨 깁니다.

내 프로젝트 팀은 이것으로 몇 번 잡혔습니다 (파일이 CVS로 체크인되면 파일이 엉망이됩니다).

저는 메모장 ++를 사용하는 경향이 있습니다. 오른쪽 하단의 인코딩을 확인합니다 (ANSI라고 표시되어야 함). 변경해야하는 경우 형식 메뉴로 이동하여 유형을 변경 한 다음 저장합니다.

Visual Studio는 동일하게 보이지만 파일 크기는 절반으로 줄어들어야합니다!


Ray는 Visual Studio의 텍스트 기본 형식이 UTF-8과 같다고 말했을 때 정확합니다. Notepad ++는 훌륭한 도구이고 필자가 직접 사용하지만 Visual Studio에 텍스트 파일을 ASCII 형식으로 저장하도록 지시 할 수있는 대안이 있습니다.

VS2008의 경우 솔루션 탐색기에서 파일을 선택하고 파일 ... 다른 이름으로 myfile.bat 저장 ...을 선택합니다.

저장 버튼의 아래쪽 화살표에서 인코딩으로 저장을 선택합니다.

고급 저장 옵션 대화 상자에서 저장할 때 인코딩 드롭 다운 목록에서 US-ASCII를 선택합니다. 필요에 따라 줄 끝을 설정하거나 현재 설정으로 둡니다.


Visual Studio 내에서이를 수정하는 또 다른 방법은 ...

  1. 솔루션 탐색기에서 파일을 마우스 오른쪽 버튼으로 클릭하고 '연결 프로그램'을 선택합니다.
  2. "... 인코딩 사용"옵션 중 하나를 선택합니다.
  3. 인코딩 목록에서 US-ASCII를 선택합니다.
  4. 파일 저장

이제 열 때마다 선택한 인코딩을 유지해야합니다.


이것이 Visual Basic에서 문제를 해결하는 데 유용했지만 해결책은 VB에게 아래와 같이 ASCII 인코딩을 사용하도록 지시하는 것입니다.

Try
        outFile = My.Computer.FileSystem.OpenTextFileWriter(myPath, True, System.Text.Encoding.ASCII)
        outFile.WriteLine(macroText)
        outFile.Close()
 Catch ex As Exception

참고 URL : https://stackoverflow.com/questions/854360/visual-studio-inserts-invalid-characters-in-batch-files

반응형