32 비트 OS에서는 32 비트 모드로 실행하거나 64 비트 OS에서는 64 비트 모드로 실행하고 싶습니다. 이 프로그램은 으로 만들어졌습니다. Exe Converter v2.1.4에 배트하기 때문에 기본적으로 배치 파일입니다. 일반적으로 32 비트 OS에서 배치 파일을 실행하면 32 비트 모드로 실행되며 64 비트 OS에서 실행하면 64 비트 모드로 실행됩니다. 문제는, 사용 Exe 변환기 v2.1.4에 박쥐 프로그램이 32 또는 64 비트인지 선택할 수 있습니다. 32 비트를 선택해야합니다. 그렇지 않으면 32 비트 OS에서 실행되지 않을 것입니다. .vbs 파일을 사용하여 .Run 및 .ShellExecute을 사용하여 프로그램을 다시 시작했지만 결과적으로 변환기에서 설정된 것과 동일한 아키텍처가 생성되었습니다. 나는 또한 cmd /c
과 %WINDIR%\System32\cmd.exe /c
그리고 또한 %WINDIR%\SysWOW64\cmd.exe /c
을 시도했지만 그 방법을 찾지 못했습니다. 저는 Windows 8.0 x64를 사용하고 VM은 Windows 8.1 x64입니다.배치 파일을 32 비트 모드의 배치 파일에서 실행하는 방법
답변
c:\windows\sysnative
32 비트 프로그램의 경우 System32에 대한 액세스 권한을 부여합니다.
32 비트
C:\Windows\System32 accesses syswow64
c:\windows\sysnative accesses System32
64 비트 그냥 직접 폴더에 접근, 말 있잖아 - 예를 들어 C : \ WINDOWS를 \ system32를가 SYSTEM32와 C에 액세스 : \ WINDOWS를 \ syswow64로는 syswow64로는 액세스합니다.
요점은 32 비트 프로그램 만 작성해야한다는 것입니다. 64 비트 프로그램은 대부분 내부적으로 32 비트입니다 (메모리 주소는 64 비트 만 나머지는 32 비트로 유지됩니다). 64 비트는 서버 앱용입니다. 일반 프로그램에는 32 비트를 사용하십시오.
EDIT
32 비트 프로그램은 32 비트 메모리 어드레스 필요 미사용 때문에 32 비트 (오프셋)이다 (베이스 어드레스는 항상 윈도우에서 0)되는 64 비트 어드레싱 모드와 32 비트 .
64 비트 프로그램은 64 비트 오프셋 메모리 주소가있는 32 비트입니다 (64 비트 모드에서는 기본 주소의 크기가 항상 0이고 수십 년 동안은 아무 것도 모르기 때문에). 64 비트 프로그램은 일반적으로 과학 또는 비디오 처리 작업을 위해 선택할 때 64 비트 명령어를 사용하여 전체 64 비트 프로그램이 될 수 있습니다. 그러나 64 비트는 모두 너무 많은 메모리를 씹고 Windows 및 다른 라이브러리는 32 비트 값을 예상합니다.
일반 원칙은 작업을 수행하기 위해 아무 것도하지 않아도된다는 것입니다. 사람들이 32 비트/64 비트에 대해 생각하기 시작하면 문제가 생깁니다. 비트 니스를 무시한다면 마이크로 소프트는 모든 작업을 정상적으로 작동하게 만듭니다.
시작 - 실행 (Winkey + R) 대화 상자에 iexpress를 입력하면 자신의 bat2exe를 만들 수 있습니다.
당신은 당신의 배치 파일의 맨 위에 다음 사용할 수 있습니다
@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%"=="" set "SystemPath=%SystemRoot%\Sysnative"
다음 당신은 예를 %SystemPath%\findstr.exe
를 들어, 배치 파일에 %SystemPath%
와의 Windows System32 디렉터리의 모든 콘솔 응용 프로그램을 호출해야합니다. 물론 cmd을 %SystemPath%\cmd.exe
으로 시작하여 배치 파일 내에서 항상 64 비트 명령 줄 인터프리터를 실행할 수도 있습니다.
어떻게 작동합니까?
환경 변수 SystemPath은 먼저 Windows의 System32 디렉터리로 설정됩니다.
32 비트 실행 파일로 압축 된 배치 파일은 실제로 모든 32 비트 Windows의 System32 디렉터리에서 실행되지만 64 비트 Windows에서는 %SystemRoot%\SysWOW64
디렉터리에서 실행됩니다.
그러므로 배치 파일은 Windows x64에만 해당되는 환경 변수 ProgramFiles (x86)이 있는지 확인합니다. 따라서 Windows x86에서 세 번째 줄의 조건은 false이고 SystemPath은 변경되지 않습니다. 그러나 시스템 경로은 32 비트 실행 파일에서 %SystemRoot%\System32
의 응용 프로그램을 각각 cmd.exe
으로 호출하고 %SystemRoot%\SysWOW64
으로 리디렉션하지 않고 64 비트 Windows에서 %SystemRoot%\Sysnative
으로 수정되었습니다.
자세한 내용은 MSDN (Microsoft Developer Network)의 문서를 참조하십시오.
그러나 더 나은 %TEMP%
에 배치 파일을 추출하여 32 비트 실행 파일 안에 모든 수행하고 실행하는 것 중 하나와
%SystemRoot%\System32\cmd.exe /C "%TEMP%\ExtractedBatch.bat"
32 비트 Windows 경우 환경 변수 의 ProgramFiles (86)은 존재하지 않거나 또는
(64 비트 Windows)입니다.
Windows x64 (32 비트 또는 64 비트 cmd.exe
)에서 시작될 때마다 독립적으로 항상 64 비트 콘솔 응용 프로그램을 실행하기 위해 배치 파일의 맨 위에 사용할 수있는 코드가 하나 더 있습니다. Windows에서
@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%"=="" (
if exist %SystemRoot%\Sysnative\* set "SystemPath=%SystemRoot%\Sysnative"
)
파일이 %SystemRoot%\Sysnative
에있는 경우는 추가로 체크 X64. 이 경우 배치 파일은 32 비트 cmd.exe
으로 실행되며이 경우에만 을 사용해야합니다. 그렇지 않으면 %SystemRoot%\System32
은 64 비트 cmd.exe
으로 배치 파일을 시작할 때 Windows 64에서 사용할 수 있습니다.이 파일은 64 비트 콘솔 응용 프로그램이 포함 된 디렉토리입니다.
참고 : %SystemRoot%\Sysnative
은 (는) 디렉토리가 아닙니다. 그것은 %SystemRoot%\Sysnative
에 cd
할 수 없습니다 또는 if exist %SystemRoot%\Sysnative
- 1. 배치 파일에서 32 비트 jvm.dll을 찾는 방법
- 2. 배치 - 다른 배치 파일에서 시작된 배치 파일을 닫는 방법
- 3. asp.net에서 배치 파일을 실행하는 방법
- 4. 배치 파일을 자동 실행하는 방법
- 5. 관리자 모드에서 배치 파일을 실행하는 방법
- 6. 배치 파일에서 SQL 스크립트를 실행하는 방법
- 7. 다른 배치 파일에서 Windows 배치 파일을 호출하는 방법
- 8. 배치 파일에서 wmic 명령을 실행하는 방법
- 9. 배치 파일을 실행하는 CreateProcess
- 10. 폴더에서 배치 XML 파일을 실행하는 배치 스크립트
- 11. 파일을 설치하고 실행하는 배치 파일을 만드는 방법
- 12. 외국어 텍스트가있는 배치 파일을 실행하는 방법?
- 13. 배치 파일에서 두 프로그램을 실행하는 방법
- 14. 배치 파일을 사용하여 Admin으로 MStest를 실행하는 방법
- 15. Cygwin 셸에서 Windows에서 배치 파일을 실행하는 방법
- 16. 중국어 문자로 배치 파일을 실행하는 방법
- 17. 배치 파일을 실행하는 스케줄 제거
- 18. Windows에서 배치 파일을 실행할 수 없습니다. 7-32 비트
- 19. 배치 파일에 다른 배치 파일을 만드는 방법
- 20. 배치 파일을 실행하는 VM웨어 명령어
- 21. 배치 파일을 실행하는 Oracle 작업
- 22. 배치 파일을 실행하는 Windows 서비스
- 23. 모든 폴더에서 배치 파일을 실행하는 방법
- 24. HTA 내에서 배치 파일을 실행하는 방법
- 25. 백그라운드에서 C#의 배치 파일을 실행하는 방법
- 26. 다른 컴퓨터에서 컴퓨터의 배치 파일을 실행하는 방법?
- 27. winform 컨트롤에서 배치 파일을 실행하는 방법
- 28. javascript를 사용하여 백그라운드에서 배치 파일을 실행하는 방법
- 29. powershell을 사용하여 배치 파일을 실행하는 방법
- 30. 일정에 따라 배치 파일을 실행하는 방법
당신이에 관심이있을 수 http://social.msdn.microsoft.com/Forums/en-US/adcae113-4758-481a-a367-60d5d14d97d6/this-를 사용 서드 파티 도구가 아닌 명령 행에서 exe 파일로 변환하는 방법은 무엇입니까? forum = script –
64 비트 OS에서 iexpress를 사용해 보았습니다. 그리고 그것은 효과가 있었지만 동일한 프로그램이 32 비트 OS에서 실행될 수 있는지 궁금합니다. 내 프로그램이 64 비트 모드에서 실행되기를 원하는 레지스트리 요소는 32 비트 배치 파일에서 호출 된 reg.exe로 액세스 할 수 없기를 바랍니다. 직접 배치 파일을 실행하거나 64 비트 모드 (또는 iExpress)로 컴파일하지 않으면 "HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Run"에 값을 추가 할 수 없습니다. – SkYWAGz
'reg 플래그 /? '참조 –