배치 루프는 txt 파일에서 키 목록을 쿼리하고 데이터 값을 재사용하는 데 사용됩니다.


1

데이터 값을 추출하여 다음 명령에 사용해야하는 배치 루프가 필요합니다. 쿼리하려는 모든 레지스트리 키가 * .txt 파일에 저장되었습니다.

예:

다음 명령은 아래의 키 값, 유형 및 데이터를 리턴합니다.

명령:

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\01690987922DC9549A63529D22383DDF\InstallProperties /V UninstallString

결과:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\01690987922DC9549A63529D22383DDF\InstallProperties
    UninstallString    REG_EXPAND_SZ    MsiExec.exe /X{78909610-D229-459C-A936-25D92283D3FD}

내가 원하는 것은 데이터 값만을 추출하는 것입니다. MsiExec.exe /X{78909610-D229-459C-A936-25D92283D3FD} for 루프에서 다음 명령으로 실행하십시오.

약 20 개의 레지스트리 키를 쿼리하여 추출 된 명령을 실행하려고합니다. 또한 msiexec.exe 명령이 실행될 때 자동 스위치를 추가하려고합니다.

나는 배치 루프에 매우 익숙하고 토큰 / 델림 (?)을 사용해야한다고 생각한다. 어떻게 작동 시킬지 잘 모르겠다.


2
cmd 언어를 사용해야합니까 아니면 좀 더 유능한 도구 (powershell, python, perl)로 업그레이드 할 수 있습니까?
Alien Life Form

다른 방법도 괜찮습니다. 무인 OS / 응용 프로그램 설치에 Windows ADK / MDT를 사용하며 모든 형태의 레거시 패키지가 정상적으로 작동합니다. 동료를 고려하면 PowerShell이 ​​가장 적합하다고 생각합니다.
Heinza

@AlienLifeForm cmd 그런 사소한 일을 완벽하게 수행 할 수 있습니다.)
DavidPostill

@AlienLifeForm 또한 cygwin도 가지고 있습니다. 나는 파워 쉘을 배우기 만하지 않았다.
DavidPostill

답변:


1

reg query txt 파일의 키 목록과 데이터 값 재사용

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\01690987922DC9549A63529D22383DDF\InstallProperties /V UninstallString

내가 원하는 것은 데이터 값만을 추출하는 것입니다. MsiExec.exe/X{78909610-D229-459C-A936-25D92283D3FD} 그것을 다음 명령으로 실행하십시오. for 고리.

다음 배치 파일을 시작해야합니다.

@echo off
setlocal enableDelayedExpansion
rem get each key from keys.txt
for /f "usebackq tokens=*" %%i in (`type keys.txt`) do (
  echo Processing key %%i
  rem skip the first line and grab tokens 3 and 4 from the second line
  for /f "usebackq skip=1 tokens=3,4" %%j in (`reg query %%i`) do (
    echo %%j /quiet %%k
    )
  )

노트:

  • keys.txt 쿼리 할 키가 한 줄에 하나씩 있어야합니다.
  • 두 개 필요해. for 루프, 각 키를 처리 할 첫 번째, 출력을 구문 분석 할 두 번째 (내부).
  • 출력의 첫 번째 줄은 키의 이름이므로 건너 뜁니다.
  • 해당 항목을 제거하십시오. echo ...에서 echo %%j /quiet %%k 배치 파일이 무엇을하는지 당신이 행복 할 때.
  • 나는 추측한다. /quiet "침묵"에 필요한 스위치입니다. 필요한 경우 변경하십시오.

더 읽을 거리

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.