2013-03-27 6 views
13

내 컴퓨터의 일부 cmd 문제를 피할 수 있도록 배치 파일을 만들고 싶지만,이를 위해 String 사용자 입력을 받아 명령으로 실행할 수 있어야합니다.배치 파일을 명령으로 실행하는 방법은 무엇입니까?

기본적으로 내가 배치 파일 입력을 요청하는 명령을 입력하면됩니다 및 명령 컴퓨터 실행, 파이썬의 os 모듈과 유사 (클래스?)

답변

23

는 단순히를 할당을 할 수 있도록하려는 것 이 입력하라는 메시지를 표시하는 프로그램

예를 들어

set myvar=ECHO Hello, World! 
%myvar% 
+0

을 나는에 %이 MyVar의 %의 출력을 리디렉션 할 경우 어떻게 파일? 내가 시도 :'% myvar %> myfile.txt',하지만 불평 : "명령의 구문이 올바르지 않습니다." – Apteryx

+2

@Apteryx : 캐럿으로'>'을 단순히 "이스케이프"합니다 :'^>'이것은 다음 문자의 특별한 의미를 없앱니다. – Magoo

4

사용 set /p 명령했다 것처럼 변수에 문자열, 다음 변수를 "실행". 이 명령은 또한 메시지를 표시합니다. 예 : 간단한에서

@echo off 
set "command=dir" 
set /p "command=type in a command: " 
echo.command is: %command% 
echo.press any key or ^<CTRL+C^> to abort . . . 
>nul pause 
%command% 
2

, 당신은 결과에 환경 변수를 설정하면 명령 프롬프트 set /p를 사용하려면, 단순히 그 자체로 환경 변수를 확장하여 OS는로 실행을 시도합니다 명령.

당신은 루프의 배치를 사용할 수 있습니다
+1

Endo의 대답은 더 깨끗한 출력을 위해 "echo off"를 설정하고 배치 파일로 작업 할 때 좋은 코딩 방법 인 일부 문자 등을 이스케이프 처리하지 않으려면 따옴표로 묶는 것으로 "완료"됩니다. 그러나 미니멀리스트 코드는 질문에만 초점을 맞추고 싶습니다. 원하는 형식으로 투표하거나 받아들입니다. :-) –

0

, 이것은 파워 쉘 명령 프롬프트에서 나를 위해 작동하지만

SET /P COMMAND=Command: 
%COMMAND% 
:

Microsoft Windows [Version 6.3.9600] 
(c) 2013 Microsoft Corporation. All rights reserved. 

C:\Users\Administrator>FOR /F "delims=" %i IN ('python -c "print('set wow=yep')"') DO set toexec=%i 

C:\Users\Administrator>set toexec=set wow=yep 

C:\Users\Administrator>%toexec% 

C:\Users\Administrator>echo %wow% 
yep 
관련 문제