2014-12-05 9 views
0

짧은 : 변수를 설정하고 사용하는 1 줄 명령 스크립트를 만들려고합니다. 지금 당장 올거야 :cmd/C 세트 변수

cmd /C "set var=127.0.0.1 & echo %var%" 

출력은 127.0.0.1이지만 % var %를 출력합니다.

길게 : 저는 keepass를 암호 관리자로 사용하고 자동으로 RDP 세션을 시작하려고합니다. 나는 URL에 다음을 넣어 :

cmd://cmd /C "cmdkey /generic:TERMSRV/127.0.0.1 /user:{USERNAME} /pass:{PASSWORD} & mstsc.exe /v:127.0.0.1 & cmdkey /delete:TERMSRV/127.0.0.1" 

이 작동하지만 나는 여기서 ipaddress를 업데이트해야 할 경우, '나는 3 곳 대신에 단지 1. 내가 다음에 변경 시도를 터치해야하지만, didn를 일 :

cmd://cmd /C "set sServer=127.0.0.1 & cmdkey /generic:TERMSRV/%sServer% /user:{USERNAME} /pass:{PASSWORD} & mstsc.exe /v:%sServer% & cmdkey /delete:TERMSRV/%sServer%" 
+0

왜 _1 라인 명령 script_ condition, 그러나'SETLOCAL EnableDelayedExpansion'과'echo! var!'가 도움이되는지 이해할 수 없습니다. [EnableDelayedExpansion]에 대한 자세한 내용 (http://ss64.com/nt/delayedexpansion.html) – JosefZ

+0

한 줄의 요구 사항은 keepass에서 제공됩니다. 그것의 cmd : // 능력은 오직 당신이 1 명령을 실행할 수 있습니다. DelayedExpansion과 함께 몇 가지 변형을 시도했지만 정확한 조합을 아직 찾지 못했습니다. 누군가가 하루 전에 응답을 보냈지 만 지금은 사라졌습니다. –

+0

/F의 "cmd : // cmd/C"tokens = * "% G in ("127.0.0.1 ") do cmdkey/일반 : TERMSRV/% G/사용자 : {사용자 이름}/패스 : {비밀번호} & mstsc.exe/v : % G & cmdkey/delete : TERMSRV/% G "' 'keepass'에 대해 아는 바는'% G' 대신'%% G' 일 수 있습니다. (http://ss64.com/nt/for.html) shoud be. – JosefZ

답변

0

josefZ 덧글 완벽하게 일했다. keepass의 "URL :"필드에 다음 명령을 입력 할 수 있습니다. 당신은 이중 URL을 클릭하거나 URL을 실행 다른 작업을 수행 할 때 자동으로 RPD를 시작하고 당신을 기록합니다.

cmd://cmd /C "for /F "tokens=*" %G in ("127.0.0.1") do cmdkey /generic:TERMSRV/%G /user:{USERNAME} /pass:{PASSWORD} & mstsc.exe /v:%G & cmdkey /delete:TERMSRV/%G" 

을 내가 윈도우 상자와 리눅스 박스에 모두 RDPing하여이를 테스트했습니다.