Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как закоментировать эти символы в bat файле? (http://forum.oszone.net/showthread.php?t=352734)

ivan456 08-01-2023 05:03 3000467

Как закоментировать эти символы в bat файле?
 
Всем привет.
Подскажите как правильно это закоментировать. Пол дня бьюсь об стену никак не могу понять, тему изучал где какие символы ставить в разных случаях, но нифига не понял.
В моем примере почему то это не хочет работать.

Этот bat cкрипт ищет REG_MULTI_SZ, удаляет ненужноев нем и снова добавляет.
Вот только при добавлении %%windir%%, пишется как просто Windows, а должно быть %C:\Windows%

Скрытый текст
Код:

@Echo On
SetLocal EnableExtensions DisableDelayedExpansion

Set "_k=HKLM\SOFTWARE\testing"
Set "_v=test123"
Set "_s=%%%windir%%%\testing\2.txt"

Set "_d="
For /F "Tokens=2*" %%A In ('Reg Query "%_k%" /V "%_v%"'
) Do If "%%A"=="REG_MULTI_SZ" Set "_d=%%B"
If "%_d%"=="" Exit /B
Set "_d=%_d:\0\0=%"
Set "_m="
For %%A In ("%_d:\0=","%"
) Do Echo %%A|Find /I "%_s%">Nul||Call Set "_m=%%_m%%%%A\0"
If "%_m%"=="" Exit /B
Reg Add "%_k%" /V "%_v%" /T "REG_MULTI_SZ" /D %_m:~,-2% /F>Nul



PS: Просто reg add мне не подходит, так как добавлять надо много разного в один параметр и сидеть сравнивать чего там есть, а чего нет слишком долго и муторно.

А ещё как в конце убрать /0 в этом скрипте?
Должно быть как здесь:
Скрытый текст
Код:

Reg.exe add "HKLM\SOFTWARE\testing" /v "test" /t REG_MULTI_SZ /d "%%windir%%\testing\1.txt\0%%windir%%\testing\2.txt\0%%windir%%\testing\3.txt" /f

ivan456 08-01-2023 10:01 3000470

Возможно не правильно написал в вопросе), экранирование наверно.

Serguei Kouzmine 09-01-2023 03:05 3000536

вам нужно было корректно формулировать проблему, если вы хотите ее решения!
чем мучиться (про себя употребил другое слово) с приведенным батникам
советую переписать его на повершелл

ivan456 09-01-2023 07:00 3000539

Цитата:

Цитата Serguei Kouzmine
вам нужно было корректно формулировать проблему, если вы хотите ее решения!
чем мучиться (про себя употребил другое слово) с приведенным батникам
советую переписать его на повершелл »

не спал сутки, вот и перемешалось все в голове) комментирование, экранирование, почти похоже)
Я бы хотел понять почему у меня в конце никак не добавляются %C:\Windows%
Скрипт то почти рабочий, по крайней мере он работает с REG_MULTI_SZ и REG_SZ, которые через запятую идут.

Serguei Kouzmine 12-01-2023 05:03 3000786

Вложений: 1
извините за прямоту
для этой операции (другими словами) вреден цмд
это примерно как добывать огонь трением
это и многим и более подкованным не под силу

вот как можно (пере) записать значение тербуемого типа в реестр


Код:

$a = get-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\wscsvc'  -name DependOnService | select-object -expandproperty DependOnService
$a += 'noname'
# convert from [Object[]] to [String[]]
[String[]]$b = [String[]]($a)
$b.getType()

IsPublic IsSerial Name                                    BaseType
-------- -------- ----                                    --------
True    True    String[]                                System.Array


set-itemproperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\wscsvc'  -name test -value  $b


Serguei Kouzmine 12-01-2023 05:06 3000787

Вложений: 1
скриншотФайл 167838

Код:

& Reg.exe Query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc" /V "test"

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc
    test    REG_MULTI_SZ    RpcSs\0WinMgmt\0noname



Время: 23:53.

Время: 23:53.
© OSzone.net 2001-