Пакетный файл для записи «Удаление» и «Готово» в одной строке с удалением wmic.

Я хотел бы удалить программу через Bathc, используя метод wmic. Я хотел бы, чтобы сообщение "удаление..." и затем "сделано" сразу после этого, не переходя к следующей строке. Ниже приведен код, который я пытаюсь использовать, но он не работает:

set /p a=Uninstalling XXXXX...........<nul
wmic product where name="XXXXXXX" call uninstall >null<nul
set /p a=Done<nul
echo.

Любая помощь будет оценена по достоинству!


person Wajo357    schedule 22.07.2015    source источник
comment
Определить не работает - команды набора работают для меня с другой командой посередине (хотя это не команда wmic). Возможно, команда wmic что-то пишет на экран?   -  person Jerry Jeremiah    schedule 23.07.2015
comment
Спасибо за публикацию кода, который вы пытаетесь. Пожалуйста, отредактируйте сообщение, чтобы указать, как вы хотите, чтобы результат выглядел.   -  person lit    schedule 23.07.2015
comment
В строке wmic вместо >null<nul попробуйте >NUL 2>NUL. Также замените set /p a=Done<NUL на echo Done. и избавьтесь от последней строки.   -  person rojo    schedule 23.07.2015
comment
Спасибо за все комментарии. unclemeat получил это ниже. Я хотел, чтобы конечный результат выглядел следующим образом: Удаление XXXXX.........ГОТОВО, однако сначала на экране будет отображаться Удаление XXXXX..........., а затем пакет будет удален, а затем в той же строке будет отображаться DONE.   -  person Wajo357    schedule 24.07.2015


Ответы (1)


В следующем примере используется прием, размещенный Джебом в DosTips. Я верю, что это то, что вам нужно.

@echo off
setLocal enableDelayedExpansion
copy nul sub.tmp /a > nul
for /F %%a in (sub.tmp) DO set "sub=%%a"
del sub.tmp

call :echoWithoutLinefeed "Uninstalling XXXXX..........."
wmic product where name="XXXXXXX" call uninstall >null
call :echoWithoutLinefeed " Done"

:echoWithoutLinefeed
> txt.tmp (echo(%~1!sub!)
copy txt.tmp /a txt2.tmp /b > nul
type txt2.tmp
del txt.tmp txt2.tmp
exit /b
person unclemeat    schedule 23.07.2015
comment
Бинго! Это сработало. Спасибо! Я не уверен, что понимаю это, но на данный момент это не имеет большого значения. :) - person Wajo357; 24.07.2015
comment
хм... кажется, сейчас это не работает. Возможно, когда я тестировал его, он уже был удален. Однако, если я запускаю его в установленном приложении, он не работает. - person Wajo357; 27.07.2015
comment
ХОРОШО. Думаю, я понял. Вместо ›null я попробовал ›nul 2›&1, и это сработало. - person Wajo357; 27.07.2015