Скрипт Windows, чтобы заменить изображение экрана блокировки Windows случайным фото - PullRequest
0 голосов
/ 08 июня 2018

Проблема: групповые политики не позволяют мне изменить экран блокировки на слайд-шоу или прожектор, но я являюсь локальным администратором на ПК и, заменив C:\Windows\Web\Screen\Screen.jpg, я могу изменить изображение экрана блокировки.

Решение: создайте batch / CMD / PS script, который выполняется каждые XX минут и копирует случайное изображение из исходной папки, чтобы заменить C:\Windows\Web\Screen\Screen.jpg

Я нашел возможный сценарий в этом статья , которая может работать, но как мне изменить ее для своих целей, и если я планирую запускать ее в планировщике задач каждые 30 минут, будет ли пакетный файл работать в фоновом режиме без помех или лучше использовать сценарий CMD или сценарий Powershellрешения?

см. код ниже:

@echo off & setlocal
set "workDir=C:\source\folder"
::Read the %random%, two times is'nt a mistake! Why? Ask Bill.
::In fact at the first time %random% is nearly the same.
@set /a "rdm=%random%"
set /a "rdm=%random%"
::Push to your path.
pushd "%workDir%"
::Count all files in your path. (dir with /b shows only the filenames)
set /a "counter=0"
for /f "delims=" %%i in ('dir /b ^|find "."') do call :sub1
::This function gives a value from 1 to upper bound of files
set /a "rdNum=(%rdm%*%counter%/32767)+1"
::Start a random file
set /a "counter=0"
for /f "delims=" %%i in ('dir /b ^|find "."') do set "fileName=%%i" &call :sub2
::Pop back from your path.
popd "%workDir%"
goto :eof
:: end of main
:: start of sub1
:sub1
::For each found file set counter + 1.
set /a "counter+=1"
goto :eof
:: end of sub1
:: start of sub2
:sub2
::1st: count again,
::2nd: if counted number equals random number then start the file.
set /a "counter+=1"
if %counter%==%rdNum% (
:: OUTPUT ALERT BOX with FILENAME
MSG * "%fileName%"
)
goto :eof
:: end of sub2

1 Ответ

0 голосов
/ 08 июня 2018

IMO PowerShell намного превосходит пакет в этом случае

dir C:\source\folder\*.jpg |Get-Random|Copy -Dest C:\Windows\Web\Screen\Screen.jpg -Force

Вы можете заключить его в строку пакета / cmd

powershell -Nop -C "dir C:\source\folder\*.jpg |Get-Random|Copy -Dest C:\Windows\Web\Screen\Screen.jpg -Force" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...