Вы должны войти, чтобы создавать сообщения и темы.

Как записать путь в реестр

Добрый вечер! Хочу с помощью батника записать в реестр путь к папке батника.
Данный скрипт у меня не работает.
Скопировано"%~dp0\" такая комбинация символов оставляет лишний слэш.
Пробовал заменить Скопировано"%~dp0" на Скопировано"%cd%", но в редких случаях скрипт может работать некорректно.
Буду признателен за помощь!

reg add "HKCU\Software\MyFolder" /v MyPath /t REG_SZ /d "%~dp0" /f

 

Имир, Привет.
Так слеш на конце, это норм для cmd, он же путь к папке берет и в конце всегда "\", это не лишний символ)

Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Так, сообщение написал, а забыл вставить код, Скопированоfor %%a in ("%~dp0.") do reg add "HKCU\Software\MyFolder" /f /v MyPath /t REG_SZ /d "%%~fa" долже без всего лишнего записать.

Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, спасибо огромное! Как всегда, коротко и понятно)
А можно ещё спросить, как подобное сделать в гибридном скрипте?
Например, у меня есть батник с powershell-командами.
Нужно в переменную Скопировано$pathToAdd вставить путь к папке батника.

@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-Expression (Get-Content '%~f0' | Select-Object -Skip 3 | Out-String)"
goto :eof

$pathToAdd = ""
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($currentPath -split ';' -notcontains $pathToAdd) {
    $newPath = ($currentPath, $pathToAdd -split ';' | Where-Object { $_ }) -join ';'
    [Environment]::SetEnvironmentVariable("Path", $newPath, "User")
}

 

Имир, до powershell пишешь bat скрипт, Скопированоfor %%a in ("%~dp0.") do set "pathToAdd=%%~fa", а после в переменную пишешь Скопировано$pathToAdd = $pathToAdd, а и еще надо поправить powershell, на такой Скопированоpowershell -NoProfile -ExecutionPolicy Bypass -Command "$pathToAdd = '%pathToAdd%'; Invoke-Expression (Get-Content '%~f0' | Select-Object -Skip 3 | Out-String)", как то так)

Лайкнул Имир
Имир
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Михаил, спасибо! Отлично работает!
И всё-таки интересно, почему Скопировано"%~dp0" не работает... Скрипт как будто не понимает, где заканчивается запись пути и пишет в реестр вот это: СкопированоC:\Users\Admin\Desktop" /f

Mikhail, разобрался с эти) Комбинация Скопировано\" на конце воспринимается как экранированная кавычка. Буду знать. 
Спасибо большое за помощь!
Вопрос можно считать решённым