Gvint64
  - Longevity: 4 years 11 months
- Posts: 621
- REPUTATION:72[+] [-]
|
mat.86, Скрипт от администратора запускали?
|
 Отправлено: 11-Dec-2020 20:42
(after 2 hours 19 minutes)
mat.86
  - Longevity: 8 years 10 months
- Posts: 225
- REPUTATION:1[+] [-]
|
Вообщем вот так срабатывает, запись появляется во всех профиляхFor /F "usebackq tokens=* delims==" %%i in (`DIR /B /AD-S "%SystemDrive%\Users" ^| FINDSTR /V /B /I /C:"All Users" /C:"%username%"`) DO ( reg load HKLM\Custom "%SystemDrive%\Users\%%i\NTUSER.DAT" Reg.exe add "HKLM\Custom\1" /v "TEST1" /t REG_SZ /d "111" /f reg unload HKLM\Custom ) Это если напрямую указать папку с профилями "%SystemDrive%\Users", а если так (c определением местоположения профилей)for /f "usebackq tokens=3,3* delims== " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i For /F "usebackq tokens=* delims==" %%i in (`DIR /B /AD-S "%profiles%" ^| FINDSTR /V /B /I /C:"All Users" /C:"%username%"`) DO ( reg load HKLM\Custom "%profiles%\%%i\NTUSER.DAT" Reg.exe add "HKLM\Custom\1" /v "TEST1" /t REG_SZ /d "111" /f reg unload HKEY_USERS\Custom ) не работает в семерке, работало только в XP. Да запускал от администратора
Last edited by mat.86 on 2020-12-17 03:26; edited 1 time in total
|
mat.86
  - Longevity: 8 years 10 months
- Posts: 225
- REPUTATION:1[+] [-]
|
Подскажите пожалуйста как реализовать запуск сценария в зависимости от версии операционной системы. Примерно так: определение операционной системы, если windows XP, переход на выполнение сценария1, если не windows XP (все что старше), то переход на выполнение сценария2. Когда то натыкался на пример, сейчас не могу найти
|
sergeysvirid
  - Longevity: 10 years
- Posts: 2644
- REPUTATION:127[+] [-]
- Location: 65 регион (GMT+11)
|
82022если windows XP, переход на выполнение сценария1, если не windows XP (все что старше), то переход на выполнение сценария2. mat.86, Может как то так: @echo off cd /D "%~dp0" for /f "tokens=6 delims=[]. " %%G in ('ver') do if %%G EQU 2600 goto :1 for /f "tokens=6 delims=[]. " %%G in ('ver') do if %%G GTR 2600 goto :2 :1 Echo В этом блоке прописываем команды для Windows XP (версия 5.1.2600.*) pause >nul exit :2 Echo В этом блоке прописываем команды для Windows выше версии *.2600.* pause >nul exit
|
mat.86
  - Longevity: 8 years 10 months
- Posts: 225
- REPUTATION:1[+] [-]
|
sergeysvirid, спасибо большое, все работает
|
Ander_73
  - Longevity: 8 years 2 months
- Posts: 3983
- REPUTATION:127[+] [-]
|
ver| >nul find "5.1."&& goto WinXP|| goto Vista
|
dimo70
 - Longevity: 7 years 4 months
- Posts: 3795
- REPUTATION:27[+] [-]
- Location: BG
|
82025ver| >nul find "5.1."&& goto WinXP|| goto Vista Мастер!
_________________ Signed off for violation of forum rules
|
mat.86
  - Longevity: 8 years 10 months
- Posts: 225
- REPUTATION:1[+] [-]
|
Ander_73, спасибо, тоже работает
|
bios83
  - Longevity: 9 years 4 months
- Posts: 101
- REPUTATION:16[+] [-]
|
Привет, Требуется помощь в оптимизации скрипта@echo off mode con lines=2 cols=30 CD /d "%~dp0" ::В этой части мы задаем пароль для anydesk set pass=123123123 set "F=%systemdrive%\AnyDesk" if not exist "%~dp0AnyDesk.exe" (if not exist "%~dp0Download_AnyDesk.cmd" (echo @echo off echo mode con lines=2 cols=25 echo cd /d "%%~dp0" echo cls echo echo Downloading AnyDesk echo if not exist "%%~dp0AnyDesk.exe" cscript ^//nologo "%%~f0?.wsf" ^//job:Download echo exit ^/b echo --- Begin wsf script --- Download ---^> echo ^<package^> echo ^<job id="Download"^>^<script language="VBScript"^> echo Set oXMLHTTP = CreateObject^("MSXML2.XMLHTTP"^) echo oXMLHTTP.Open "GET", "https://download.anydesk.com/AnyDesk.exe", 0 echo oXMLHTTP.Send echo Set oADOStream = CreateObject^("ADODB.Stream"^) echo oADOStream.Mode = 3 echo oADOStream.Type = 1 echo oADOStream.Open echo oADOStream.Write oXMLHTTP.responseBody echo oADOStream.SaveToFile "AnyDesk.exe", 2 echo ^<^/script^>^<^/job^> echo ^<^/package^> )> "%~dp0Download_AnyDesk.cmd" cls echo Downloading AnyDesk call "%~dp0Download_AnyDesk.cmd" if exist "%~dp0AnyDesk.exe" del "%~dp0Download_AnyDesk.cmd" ) cls ::Вырубаем службу и процесс anydesk AnyDesk.exe --stop-service taskkill /IM AnyDesk.exe cls echo installation AnyDesk ::Устанавливаем anydesk со значком на рабочем столе start /wait AnyDesk --install "%f%" --silent --create-desktop-icon ::Устанавливаем anydesk без значка на рабочем столе ::start /wait AnyDesk --install "%f%" --start-with-win --silent ::Запускаем службу anydesk "%f%\AnyDesk.exe" --start-service ping 127.0.0.1 -n 5 -w 1000 > nul ::Устанавливаем пароль на anydesk echo %pass% | "%f%\AnyDesk.exe" --set-password ::Получаем ID от этого компьютера for /f "delims=" %%i in ('"%f%\AnyDesk.exe" --get-id') do set CID=%%i ::Создаем скрипт со всеми параметрами для подключения к этому компьютеру (echo @echo off echo mode con lines=2 cols=25 echo cd /d "%%~dp0" echo cls echo echo Downloading AnyDesk echo if not exist "%%~dp0AnyDesk.exe" cscript ^//nologo "%%~f0?.wsf" ^//job:Download echo cls echo echo ID: %CID% echo echo %pass% ^|"%%~dp0AnyDesk.exe" %CID% --with-password echo exit ^/b echo --- Begin wsf script --- Download ---^> echo ^<package^> echo ^<job id="Download"^>^<script language="VBScript"^> echo Set oXMLHTTP = CreateObject^("MSXML2.XMLHTTP"^) echo oXMLHTTP.Open "GET", "https://download.anydesk.com/AnyDesk.exe", 0 echo oXMLHTTP.Send echo Set oADOStream = CreateObject^("ADODB.Stream"^) echo oADOStream.Mode = 3 echo oADOStream.Type = 1 echo oADOStream.Open echo oADOStream.Write oXMLHTTP.responseBody echo oADOStream.SaveToFile "AnyDesk.exe", 2 echo ^<^/script^>^<^/job^> echo ^<^/package^> )> "%~dp0AnyDesk_%computername%.cmd" Как можно сократить часть кода убрав повторяющиеся код
|
 Отправлено: 14-Dec-2020 22:46
(after 1 hour 47 minutes)
Ander_73
  - Longevity: 8 years 2 months
- Posts: 3983
- REPUTATION:127[+] [-]
|
Прикидочно. Думаю, идея понятна.Код@echo off ... >"%~dp0AnyDesk_%computername%.cmd" call :script ... >"%~dp0AnyDesk_%computername%.cmd" call :script 111 ... exit :script echo @echo off echo mode con lines=2 cols=25 echo cd /d "%%~dp0" echo cls echo echo Downloading AnyDesk echo if not exist "%%~dp0AnyDesk.exe" cscript ^//nologo "%%~f0?.wsf" ^//job:Download if .%1 neq . ( echo cls echo echo ID: %CID% echo echo %pass% ^|"%%~dp0AnyDesk.exe" %CID% --with-password ) echo exit ^/b echo --- Begin wsf script --- Download ---^> echo ^<package^> echo ^<job id="Download"^>^<script language="VBScript"^> echo Set oXMLHTTP = CreateObject^("MSXML2.XMLHTTP"^) echo oXMLHTTP.Open "GET", "https://download.anydesk.com/AnyDesk.exe", 0 echo oXMLHTTP.Send echo Set oADOStream = CreateObject^("ADODB.Stream"^) echo oADOStream.Mode = 3 echo oADOStream.Type = 1 echo oADOStream.Open echo oADOStream.Write oXMLHTTP.responseBody echo oADOStream.SaveToFile "AnyDesk.exe", 2 echo ^<^/script^>^<^/job^> echo ^<^/package^> exit /b
|
bios83
  - Longevity: 9 years 4 months
- Posts: 101
- REPUTATION:16[+] [-]
|
Ander_73, Большое спасибо
|
 Отправлено: 17-Dec-2020 02:23
(after 1 day 19 hours)
mat.86
  - Longevity: 8 years 10 months
- Posts: 225
- REPUTATION:1[+] [-]
|
Стоит такая задача. По пути текущего пользователя в папке%APPDATA%\LibreOffice\4\user хранятся настройки Libre office. Как можно эту папку с настройками скопировать всем пользователям? Я сделал sfx архив для распаковки этих настроек в %APPDATA%\LibreOffice\4\user, но это получается только для текущего пользователя. Я могу сделать копирование файла во все подпапки, но это будет только первого уровня. Помогите создать такой скрипт. Список папок можно брать из реестра"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" , только там еще почему то не указана папка встроенного администратора
|
cartmenezz
  - Longevity: 9 years 7 months
- Posts: 527
- REPUTATION:14[+] [-]
- Location: Калининград
|
mat.86,  по идее вот так должно работать:echo off cd /d "%~dp0" for /f "delims=" %%i in ('dir /b "%systemdrive%\Users" ^|findstr /v "defaultuser" ^|find /v "Public"') do ( xcopy /S /E /H /R /Y "user" "%systemdrive%\Users\%%i\AppData\Roaming\LibreOffice\4\user\" ) pause * папка "user" с настройками должна лежать рядом с батником * батник в кодировке OEM 866 (на случай если в путях будет кириллица" * если нужна поддержка xp то придется добавить вариант с другими путями, как определить XP пару сообщений выше есть вариант (правда не помню, есть ли там xcopy) .... если всё-таки надо сначала распаковывать в папку текущего профиля, и копировать оттуда, то можно так:@echo off for /f "tokens=3 delims=\" %%u in ("%UserProfile%") do set current=%%u for /f "delims=" %%i in ('dir /b "%systemdrive%\Users" ^|findstr /v "defaultuser" ^|find /v "Public" ^|find /v "%current%"') do ( xcopy /S /E /H /R /Y "%APPDATA%\LibreOffice\4\user" "%systemdrive%\Users\%%i\AppData\Roaming\LibreOffice\4\user\" ) pause PS: поидее имя пользователя можно было бы получить через %username%, но если имя менялось, то название папки не совпадет (если память не изменяет, при переименовании пользователя, название папки профиля остаётся старым) PPS: или можно содержимое папки "user" упаковать не в sfx, а в обычный архив, докинуть рядом с ним 7z.exe и 7z.dll (взять из установщика или папки 7-zip, x86 для макс.совмести), и батник:@echo off cd /d "%~dp0" for /f "delims=" %%i in ('dir /b "%systemdrive%\Users" ^|findstr /v "defaultuser" ^|find /v "Public"') do ( echo. echo Start extracting to "%%i" profile ... 7z.exe x "user.zip" -o"%systemdrive%\Users\%%i\AppData\Roaming\LibreOffice\4\user\" -y echo. echo Extracting for "%%i" completed. echo. ) pause будет распокавка во все профили включая текущий (кроме defaultuser и allusers), без отдельного копирования
|
dimo70
 - Longevity: 7 years 4 months
- Posts: 3795
- REPUTATION:27[+] [-]
- Location: BG
|
Привет друзья. Нужен коммандный код для автоматического отправления файла, или контент файла, от компьютера на заданную почту. Можно и через мелкую утилитку тоже.
Last edited by dimo70 on 2020-12-17 21:47; edited 1 time in total _________________ Signed off for violation of forum rules
|
Ander_73
  - Longevity: 8 years 2 months
- Posts: 3983
- REPUTATION:127[+] [-]
|
|
Page 35 of 94
Current time is: 28-Apr 07:46
All times are UTC + 3
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|