내 컴퓨터 에 Bíblia sagrada.exe
(참고 í
) 라는 파일이 C:\
있습니다.
에서 명령 프롬프트를 열고 C:\
실행 dir /b /on B*.*
하면 다음이 반환됩니다.
Bíblia sagrada.exe
즉, 분음 부호에 문제가 없습니다.
하지만 dir /b /on B*.*
> c : \ a.txt를 실행하고 c:\a.txt
메모장으로 열면 다음 과 같이됩니다.
B¡blia sagrada.exe
즉, 그것은 대체 í
와 함께 ¡
.
그리고 내가 수행 for /f "delims=" %i in ('dir /b /on B*.*') do %i > %i.txt
하면 파일 이름에 올바른 이름을 입력하지만 그 안에 텍스트는 여전히 잘못되었습니다.
Bíblia sagrada.exe.txt
B¡blia sagrada.exe
무슨 일이야?
.vbs 스크립트를 만들고 실행하기 위해 txt 파일의 내용을 읽었 기 때문에 문제는 처음 편집에서보고 한 것보다 더 나쁩니다. 실행하려고 할 때 "Bíblia sagrada.exe"를 가리키고 프로그램을 실행하지 않는다는 "이해하지 않습니다". 즉, d : \ atalhizador \ atalhizador.bat에 .bat를 만들었습니다.
@echo off
::locais
set drvbak=
set drvprogrs=
set pathbak=%cd%
set pathabove=
set pathprogrs=%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
::identificador da pasta do programa no menu iniciar
set id=_pext1
::determina drives de acordo com paths
for /f "delims=" %%z in ("%pathbak%") do set drvbak=%%~dz
for /f "delims=" %%z in ("%pathprogrs%") do set drvprogrs=%%~dz
::pega caminho superior
cd..
set pathabove=%cd%
cd %pathbak%
cls
echo.***************
echo.* ATALHIZADOR *
echo.***************
echo.
echo.Deseja realmente executar o atalhizador para a pasta:
cd..
echo. %cd%
cd %pathbak%
echo. [s/n]:
set /p ___o=
if not "%___o%"=="s" if not "%___o%"=="S" goto end
echo.
echo.Criando os atalhos...
for /f "delims=" %%a in ('dir /b /ad /on ..') do (
echo.- pasta "%%a"...
echo. ^|-- buscando arquivos atalhizaveis...
if not exist "temp" mkdir "temp"
dir /b /on "..\%%a\*.exe" 1>temp\busca.txt 2>temp\erros.txt
for /f "delims=" %%b in (temp\busca.txt) do (
echo. ^|-- criando atalho para %%b
for /l %%z in (1,1,1) do set __temp__=
if not exist "%pathprogrs%\%id%" mkdir "%pathprogrs%\%id%"
if not exist "%pathprogrs%\%id%\%%a" mkdir "%pathprogrs%\%id%\%%a"
echo.Set oWS = WScript.CreateObject^("WScript.Shell"^) > temp\%%~na-%%~nb.vbs
echo.sLinkFile = "%pathprogrs%\%id%\%%a\%%b.lnk" >> temp\%%~na-%%~nb.vbs
echo.Set oLink = oWS.CreateShortcut^(sLinkFile^) >> temp\%%~na-%%~nb.vbs
echo.oLink.TargetPath = "%pathabove%\%%a\%%b" >> temp\%%~na-%%~nb.vbs
echo.oLink.Save >> temp\%%~na-%%~nb.vbs
cscript /nologo temp\%%~na-%%~nb.vbs
)
)
:end
%drvbak%
cd %pathbak%
pause
@echo off
언급 된 "Bíblia sagrada.exe"는 d : \ Bíblia sagrada에 있습니다.
생성 된 .vbs 파일은 아래에 있습니다 (d :에이 두 디렉터리 만 있다고 가정). 파일 이름은 D : \ atalhizador \ temp \ Bíblia Sagrada-Bíblia Sagrada.vbs입니다.
Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\Users\Ubirajara\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\_pext1\B¡blia Sagrada\B¡blia Sagrada.exe.lnk"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "D:\_pext1\B¡blia Sagrada\B¡blia Sagrada.exe"
oLink.Save
문제? 바로 가기는 "sLinkFile ="C : \ Users \ Ubirajara \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs_pext1 \ B¡blia Sagrada \ B¡blia Sagrada.exe.lnk ""를 인식하지 않기 때문에 생성되지 않습니다. .
분음 부호를 사용하지 않으면 발생하지 않지만 실제로는 해당 신호가있는 폴더와 파일이 많습니다.
.vbs 파일에 올바른 쓰기를 허용하도록 수정하는 방법은 무엇입니까?
혼자서 함께 다음 명령을 시도했지만 성공하지 못했습니다.
cmd /u
chcp 860
chcp 1200
mode con cp select=860
mode con cp select=1200
또한 cmd 래스터 글꼴과 다른 사용 가능한 글꼴로 시도했습니다 ...
코드 페이지를 UTF-8로 설정하면 도움이 될 것입니다.
chcp 65001
dir
결과는 UTF8로 인코딩한다.
VBS가있는 그대로 이해할 수없는 경우 파일이 Windows에서 UTF8로 자동 인식되도록하려면 UTF8 BOM 바이트 접두사를 붙여야합니다 .
0xEF, 0xBB, 0xBF
그런 다음 BOM이 포함 된 파일로 시작하고 작성하는 대신 추가 할 수 있습니다.
chcp 65001
copy EFBBBF.txt a.txt
dir /b /on B*.* >> a.txt
또는 copy /b
파일을 연결하는 데 사용할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다