2015-01-12 5 views
0

이것은 처음 게시 된 ive입니다. 그래서 잘못된 장소에 있다면 사과드립니다.배치 파일은 파일 이름에 특수 문자를 계속 추가합니까?

텍스트 파일에서 도메인 목록을 읽은 다음 해당 텍스트 파일에 결과를 게시하여 nslookup ls를 수행하는 배치 파일이 있습니다.

최근까지도 Ive에 문제가 없었으며 필자의 삶에 대해 필자는이 일이 왜 일어나기 시작했는지 알기 힘듭니다.

모든 파일은 첫 번째 파일을 제외하고는 완벽합니다. 첫 번째 파일 이름은 항상 "∩╗┐"(따옴표 제외)로 진행됩니다.이 파일은 내가 작성한 다른 프로그램에서 읽혀 문제를 일으키는 경향이 있습니다. 어떤 도움이 많이 감사합니다

(
del /s /q "D:\Profile\Desktop\New_folder\Records\*.*" 
for /f %%a in (D:\Profile\Desktop\New_folder\Domains\Domains.txt) do (
echo ls %%a >temp\tempfile.txt 
echo exit >>temp\tempfile.txt 
nslookup <temp\tempfile.txt> records\%%a.txt 
) 
) 

파일을 생성

을 Heres 코드 .... 가 UTF-8 바이트 순서 표시 ("BOM") 인 진수 코드 EF BB BFWikipedia를 볼 당신이 언급 한 문자 IBM Extendend Characterset에 따르면

건배,

아론

답변

1

이 있습니다. 즉, Domain.txt 파일은 BOM과 함께 UTF-8 문자 인코딩을 사용하여 최근에 저장 된 것 같습니다.

문자를 없애려면 파일을 편집하고 BOM없이 저장하십시오. 예 : to How to make Notepad to save text in UTF-8 without BOM? 그 방법 또는 "BOM 제거"검색

BOM이없는 UTF-8은 인쇄 가능한 ASCII와 호환됩니다. 즉, IBM과 같은 대부분의 공통 문자 세트에서 UTF-8로 인코딩 된 "일반"문자가 올바르게 표시됩니다 확장 된 문자 집합.

당신은 나 http://www.robvanderwoude.com/ntset.php#StrSubst에서 하위 문자열을 볼 수, 당신은 당신의 배치 스크립트에 접두사를 제거 할 수 입력 파일을 편집하지 않을 수없는 경우 -에 결국

set BOM_REMOVED=false 
for ... 
set X=%%a 
if %BOM_REMOVED%==false set X=%X:~3% 
set BOM_REMOVED=true 
echo ls %X >temp\tempfile.txt 
... 
+0

안녕 halfbit 같은, 많은 감사를 당신의 응답. 임씨는 당신의 제안으로이 문제를 해결할 수있을 것이라고 확신합니다. 그 동안이 프로젝트는 더 큰 프로젝트의 일부이므로 다른 코드를 사용하여 이름을 식별하고 이름을 변경했습니다. 당신의 도움을 주셔서 감사합니다. – Aaron

관련 문제