기본 배치 파일 오류

기본 배치 파일 오류

첫 번째 배치 파일을 작성 중인데 두 가지 기본적인 질문이 있습니다. 저는 Windows7을 사용하고 있는데 관리자로서 무언가를 실행하는 쉬운 방법이 있는지 궁금합니다. 지금은 cmd검색창에 입력하고 를 누르기 만 하면 됩니다 ctrl + shift + enter. 파일을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행하도록 선택할 수 있지만 이 부분을 배치 파일로 만들 수 있는지 궁금합니다. 내 질문의 두 번째 부분은 내가 열고 있는 프로그램에 인수를 전달하는 방법입니다. 현재 다음 코드를 사용하고 있습니다.

ECHO OFF

ECHO This will export a shapefile from my postgresql database

PAUSE   

::START "pgsql2shp export" "C:\Program Files (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe" [-f 'D:\test.shp' -h localhost -u postgres -p 5434 spatial_data 'SELECT * FROM public.energy']
::START "pgsql2shp export" "C:\Program Files (x86)\PostgreSQL\9.1\bin\" "-f 'D:\test.shp' -h localhost -u postgres -p 5434 spatial_data 'SELECT * FROM public.energy'" "pgsql2shp.exe"

START "pgsql2shp export" "C:\Program Files (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe" "-f 'D:\test.shp' -h localhost -u postgres -p 5434 spatial_data 'SELECT * FROM public.energy'"

PAUSE

ECHO shpfile complete       

PAUSE                       :: requires user input to end

다음 디렉토리에 CD를 넣은 후 명령줄에 다음을 붙여넣어 이 파일을 실행했습니다.C:\Program Files (x86)\PostgreSQL\9.1\bin

>pgsql2shp.exe -f D:\test.shp -h localhost -u postgres -p 5434 spatial_data "SELECT
* FROM public.energy"

내 배치 파일 코드가 새 터미널에서 오류를 표시하지만 읽을 수 있기 전에 사라지며 무엇이 잘못되었는지 알 수 없습니다.

답변1

명령 runas은 이러한 기능을 제공하는 것입니다. 이를 통해 다른 사람처럼 어떤 프로그램이든 실행할 수 있습니다.

runas /noprofile /user:mymachine\administrator cmd

위의 인용문에서 볼 수 있듯이 목록에서 적절한 사용자를 지정하면 해당 사용자로 실행됩니다.

이 방법의 기본 문제는 비밀번호가 a) 수동으로 입력되어야 하거나(사용자가 관리자가 아닌 경우) b) 비밀번호가 명령에 노출된다는 사실입니다 runas.

다른 유틸리티도 있습니다:

  • elevate그런 중 하나입니다. 여기에서 다운로드할 수 있습니다: WinAbility 상승. 이 프로그램을 사용하면 기본적으로 관리자가 아닌 명령 프롬프트에서도 관리자 권한으로 모든 명령을 실행할 수 있습니다.

두 번째 질문에 답하려면; 정보를 스크립트에 전달할 때 적절한 명령 인수 구문을 사용해야 합니다.

Z:\Users\Phillip>copy con go.cmd
@echo off
echo/Passed First Parameter:  %1
echo/Passed Second Parameter:  %2
echo/
echo/Pased Third Formatted Parameter:  /d:%3
echo/
^Z
        1 file(s) copied.

Z:\Users\Phillip>go yes no ok
Passed First Parameter:  yes
Passed Second Parameter:  no

Pased Third Formatted Parameter:  /d:ok

구문 %1, %2, %3은 프로그램에 전달된 실제 매개변수를 참조하며, 정보가 유효한 파일 이름이나 텍스트 항목으로 창에 표시되는 한 여기에는 파일 이름, 프로그램 등이 포함될 수 있습니다.

위의 동일한 명령 구문은 공백이 포함된 명령줄 매개 변수를 전달하는 데에도 적용됩니다.

Z:\Users\Phillip>go yes no "asdfasdfasdf asdf as dfa sdf "
Passed First Parameter:  yes
Passed Second Parameter:  no

Pased Third Formatted Parameter:  /d:"asdfasdfasdf asdf as dfa sdf "

그러나 드래그/드롭하는 경우 실제로 매개변수 또는 기타 매개변수를 직접 인용하는 습관을 들여야 합니다 %3(항상 먼저 시도하십시오. 일부 시스템은 이미 포함된 인용문으로 통과하고 일부 시스템은 그렇지 않으므로 먼저 테스트하는 것이 가장 좋습니다.

관련 정보