DOS Установить переменную, доступную только после выполнения

У меня очень простой скрипт, который я хочу извлечь из textового документа (одна string, одно значение) и передать его на taskkill – он должен быть одним лайнером, так что у меня есть:

set /p pidtokill=<C:\temp\pid.txt && taskkill /F /PID %pidtokill% 

Проблема в том, что переменная pidtokill обновляется только ПОСЛЕ выполнения команды taskkill, например, если я дважды запускаю команду taskkill, но в первый раз она будет использовать предыдущее значение, хранящееся в переменной … почему less значение pidtokill установлено «воtime» для команды taskkill?

То, что вы наблюдаете, это «так, как оно работает» ( см. Раздел «Несколько команд в одной строке» ).

В командном fileе поведение по умолчанию заkeyается в том, чтобы читать и разворачивать variables по одной строке за раз, если вы используете & для запуска нескольких команд в одной строке, то любые изменения переменных не будут viewны до тех пор, пока выполнение не переместится на следующую строку

Если вы хотите, чтобы он работал, вам нужно поставить свой «однострочный» в пакетном fileе, а затем использовать «SETLOCAL EnableDelayedExpansion». Конечно, в этот момент вы можете просто сделать это в двух stringх.

Если вы не привязаны к пакетным fileам, в Powershell вы можете сделать это в одной строке без переменных: Stop-Process -Id (Get-Content c:\temp\pid.txt)

  • Полезные сценарии администратора WMI
  • Рекурсивно перемещать тысячи fileов в windows подпапок.
  • Как запустить команду на удаленном компьютере с недопустимым доверием домена? (с использованием местных кредитов)
  • Массовый import в АЭС
  • Запросить компьютеры Mac от ПК
  • Linux: Как get IP-адрес компьютера?
  • shell script $$ value
  • Создать сценарий автоматического перезапуска в Linux
  • запустить скрипт с параметром в cron
  • Поведение переменных среды в HKCU \ Volatile Environment reg key
  • function не работает при использовании в fileе сценария. command команды show not found
  • Interesting Posts

    Предоставить разрешение на управление другими processами пользователей

    Как создать групповую установку на XenServer 6.2?

    Область облачного хранения для BigQuery

    Есть ли какая-нибудь причина, почему веб-хост не обрабатывает реестр домена?

    Задайте настраиваемый header для hash-keyа в лаке

    Порт-порт OpenVPN с Apache / SSL

    Установите Windows 2003 Server R2 Std на PowerEdge 2950 без дискеты

    Apache2 – виртуальные хосты, направляющие весь трафик, кроме заданных поддоменов, в определенный субдомен?

    Exchange DAG Auto Failover – причины

    Невозможно подписать сценарии PowerShell

    Требуется ли специальное программное обеспечение (помимо драйверов считывателя карт) использовать смарт-карту для аутентификации на веб-websiteах?

    Почему следует использовать amazon-elb?

    Действительно ли драйверы i40e и ixgbe используются нашими Intel NIC?

    LFTP: общее имя certificateа не совпадает с запрошенным именем хоста

    Ошибка загрузки HP Proliant Gen8 после обновления BIOS и обновления processора

    Давайте будем гением компьютера.