![Как использовать команду rd в реестре Windows?](https://rvso.com/image/1654579/%D0%9A%D0%B0%D0%BA%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83%20rd%20%D0%B2%20%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80%D0%B5%20Windows%3F.png)
У меня есть строковое значение, заданное в CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce, целью которого является удаление папки при перезагрузке. Его значение:
rd /s /q "ThisPath"
Это ничего не удаляет таким образом. Если я вместо этого использую:
cmd.exe /c rd /s /q "ThisPath"
Работает после отображения черного ящика на долю секунды. Есть ли способ отправить первую команду без отображения черного ящика?
решение1
Команда rd
, которую вы пытаетесь выполнить, CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
не является исполняемым файлом, а является внутренней командой, cmd.exe
поэтому она не будет выполнена, если вы попытаетесь запустить ее отдельно.
Команда rd
будет работать только внутри cmd.exe
экземпляра.
«Черный ящик», который вы видите мигающим при запуске cmd.exe
, запускается, выполняет rd
команду и снова закрывается.
Если вы поместите rd
команду в пакетный файл, вы можете запустить ее в свернутом виде с помощью:
cmd.exe /c start /min c:\path\to\RemoveDir.bat
Это сделает его менее заметным.