Как обработать возврат каретки с помощью пакетного скрипта Windows? - PullRequest
0 голосов
/ 23 апреля 2010

Я хочу использовать летучую мышь, чтобы автоматизировать некоторые из моих работ. Сначала следует найти значение определенного раздела реестра, а затем скопировать некоторые файлы в каталог, включенный в значение раздела реестра. Я использовал команду reg query для просмотра реестра, например:

REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE

Кажется, что результат содержит возврат каретки, и мне нужно удалить его, я пробовал некоторые решения, но все не удалось. Кто-нибудь может мне помочь?

1 Ответ

3 голосов
/ 23 апреля 2010

Для этого конкретного случая вы можете начать с:

for /f "tokens=3" %i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE ^| findstr PROCESSOR_ARCHITECTURE') do set x=%i

, который установит %x% в x86 (в моем случае).

Если третье значение в строке может содержать пробелы, вам нужно немного усложнить


Следующий скрипт показывает один способ быть хитрее. Он в основном использует строку отладки для вымышленного вывода из reg, который дает вам архитектуру с пробелами.

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "tokens=2*" %%a in ('echo.    PROCESSOR_ARCHITECTURE      REG_SZ  x86 64-bit     grunter') do (
    set arch=%%b
)
echo !arch!
endlocal

Вывод этого:

x86 64-bit grunter

как и ожидалось (имейте в виду, что он объединяет несколько пробелов в один). Бит tokens=2* переводит токен 2 (REG_SZ) в %%a и все последующие токены в %%b.

Итак, хорошим финальным сценарием будет:

@setlocal enableextensions enabledelayedexpansion
@echo off
set id=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
set key=PROCESSOR_ARCHITECTURE
for /f "tokens=2*" %%a in ('REG QUERY "!id!" /v !key! ^| findstr !key!') do (
    set arch=%%b
)
echo !arch!
if !arch!==x86 echo arch was x86
endlocal

Этот скрипт выводит:

x86
arch was x86

чтобы вы знали, что он установлен по вашему желанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...