1

Тема: Корисні скріпти для Windows

Старий Windows Photo Viewer

Опис: Відкриває зображення у Windows 10 так, як це робить Windows 7.

start "viewphoto" /D "%CD%" /MIN /B "%SystemRoot%\System32\rundll32.exe" "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll",ImageView_Fullscreen %~f1
Підключення до інтернету в 1 клік

Опис: Встановлює інтернет зєднання (для PPPoE).

@call %WinDir%\System32\rasdial.exe "Connection name" "login" "password"
pause && @call %WinDir%\System32\rasdial.exe "Connection name" /DISCONNECT

Опис: Встановлює інтернет зєднання (для PPPoE) і затерає консоль, щоб не залишати в консолі облікові дані.

@cls && echo Connect ... && @call %WinDir%\System32\rasdial.exe "Connection name" "login" "password"
@title bash
@cls && echo Disconnect ... && pause
@call %WinDir%\System32\rasdial.exe "Connection name" /DISCONNECT && @cls
@cls
Подякували: Chemist-i, FakiNyan, ch0r_t3

2

Re: Корисні скріпти для Windows

Прихований текст

В мене ФастСтоун картинки відкриває, до того був АСДсі, але той платний, по суті одне і те саме.

3

Re: Корисні скріпти для Windows

а в мене ranger на лінусі

4 Востаннє редагувалося ch0r_t (14.12.2020 16:47:21)

Re: Корисні скріпти для Windows

Тут якийсь добрий чоловік, (вочевидь гуру по PowerShell) занотував скрипт що очищує непотріб з диску. ->
http://www.theovernightadmin.com/2013/1 … shell.html
Біс його знає чи воно працює на новіших Вікнах, давно їх не торкався.

Прихований текст

copy-paste->

<#
.CREATED BY:
    Matthew A. Kerfoot
.CREATED ON:
    10\17\2013
.Synopsis
   automate cleaning up a C: drive with low disk space
.DESCRIPTION
   Cleans up the C: drives temp files and other misc. unneeded files.
.EXAMPLE
   .\cleanup_log.ps1
#>
function global:Write-Verbose
   (
    [string]$Message
   )
    # check $VerbosePreference variable
   { if ( $VerbosePreference -ne 'SilentlyContinue' )
       { Write-Host " $Message" -ForegroundColor 'Yellow' } }
         Write-Verbose  
          $DaysToDelete = 7
          $LogDate = get-date -format "MM-d-yy-HH"
          $objShell = New-Object -ComObject Shell.Application 
          $objFolder = $objShell.Namespace(0xA) 
                    
            Start-Transcript -Path C:\Windows\Temp\$LogDate.log

            ## Cleans all code off of the screen.
            Clear-Host

          $Before = Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq "3" } | Select-Object SystemName,
          @{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
          @{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
          @{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
          @{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
          Format-Table -AutoSize | Out-String                      
                    
            ## Stops the windows update service.
            Get-Service -Name wuauserv | Stop-Service -Force -Verbose -ErrorAction SilentlyContinue
            ## Windows Update Service has been stopped successfully!

            ## Deletes the contents of windows software distribution.
            Get-ChildItem "C:\Windows\SoftwareDistribution\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue |
            Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete)) } |
            remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
            ## The Contents of Windows SoftwareDistribution have been removed successfully!

            ## Deletes the contents of the Windows Temp folder.
            Get-ChildItem "C:\Windows\Temp\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue |
            Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete)) } |
            remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
            ## The Contents of Windows Temp have been removed successfully!

            ## Deletes all files and folders in user's Temp folder.
            Get-ChildItem "C:\users\$env:USERNAME\AppData\Local\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue |
            Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete))} |
            remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
            ## The contents of C:\users\$env:USERNAME\AppData\Local\Temp\ have been removed successfully!
                    
            ## Remove all files and folders in user's Temporary Internet Files.
            Get-ChildItem "C:\users\$env:USERNAME\AppData\Local\Microsoft\Windows\Temporary Internet Files\*"
            -Recurse -Force -Verbose -ErrorAction SilentlyContinue |
            Where-Object {($_.CreationTime -le $(Get-Date).AddDays(-$DaysToDelete))} |
            remove-item -force -recurse -ErrorAction SilentlyContinue
            ## All Temporary Internet Files have been removed successfully!
                    
            ## Cleans IIS Logs if applicable.
            Get-ChildItem "C:\inetpub\logs\LogFiles\*" -Recurse -Force -ErrorAction SilentlyContinue |
            Where-Object { ($_.CreationTime -le $(Get-Date).AddDays(-60)) } |
            Remove-Item -Force -Verbose -Recurse -ErrorAction SilentlyContinue
            ## All IIS Logfiles over x days old have been removed Successfully!
                  
            ## deletes the contents of the recycling Bin.
            $objFolder.items() | ForEach-Object { Remove-Item $_.path -ErrorAction Ignore -Force -Verbose -Recurse }
            ## The Recycling Bin has been emptied!
            ## Starts the Windows Update Service
            
            Get-Service -Name wuauserv | Start-Service -Verbose

          $After =  Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq "3" } | Select-Object SystemName,
          @{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
          @{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
          @{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
          @{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
          Format-Table -AutoSize | Out-String

     ## Sends some before and after info for ticketing purposes
     Hostname ; Get-Date | Select-Object DateTime
     Write-Host "Before: $Before"
     Write-Host "After: $After"

   Write-Verbose ( Get-ChildItem -Path C:\* -Include *.iso, *.vhd, *.vhdx -Recurse -ErrorAction SilentlyContinue | 
   Sort Length -Descending | Select-Object Name, Directory,
   @{Name="Size (GB)";Expression={ "{0:N2}" -f ($_.Length / 1GB) }} | Format-Table | 
   Out-String )

 ## Completed Successfully!
 Stop-Transcript 
Подякували: leofun011

5

Re: Корисні скріпти для Windows

Історія введених команд в cmd.exe
doskey /history
%WinDir%/System32/doskey.exe /history
%WinDir%/SysWOW64/doskey.exe /history

В GNU Linux є history. А чи є щось подібне в Windows, я навіть не шукав, знайшов випадково, як то часто буває.

Подякували: P.Y.1

6

Re: Корисні скріпти для Windows

leofun01 написав:

Опис: Відкриває зображення у Windows 10 так, як це робить Windows 7.

start "viewphoto" /B "%SystemRoot%\System32\rundll32.exe" "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll",ImageView_Fullscreen %~1

З допомогою ss64 вдалось виправити дрібну помилку в параметрі, додав %~f1 в файл. Без f деякі файли не відкривалися через не повне імя.

Крім того, старт *.bat має 1 не приємний ефект: на якийсь час відкривається консольне вікно (cmd.exe), яке змусує панель завдань перемістувати ярлики інших програм.
Треба було якось рішати цю проблему, і я знайшов спосіб: Редагувати реєстр

Path : Computer\HKEY_CLASSES_ROOT\Applications\viewphoto.bat\shell\open\command
Name : (Default)
Value: "C:\Windows\System32\rundll32.exe" "C:\Program Files\Windows Photo Viewer\PhotoViewer.dll",ImageView_Fullscreen %1

Path : Computer\HKEY_CLASSES_ROOT\webp_auto_file\shell\open\command
Name : (Default)
Value: "C:\Windows\System32\rundll32.exe" "C:\Program Files\Windows Photo Viewer\PhotoViewer.dll",ImageView_Fullscreen %1

Після цього всі файли, які відкривалися через viewphoto.bat, будуть відкриватися без cmd.exe.

7

Re: Корисні скріпти для Windows

:: cd-t.bat — cd зі зміною заголовку вікна
@cd/d %*
@for %%i in ("%CD%") do @title %%~NXi/ (%%~Di)

Використовується cd-t аналогічно звичайному cd (якщо вводити руками як команду) або call cd-t ШЛЯХ (якщо використовувати всередині іншого батника).

Подякували: leofun011

Re: Корисні скріпти для Windows

Контексне меню для обчислення різних хеш-сум файлів.

Прихований текст

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\GetFileHash]
"MUIVerb"="Hash"
"SubCommands"=""

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\01SHA1]
"MUIVerb"="SHA1"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\01SHA1\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm SHA1 | format-list"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\02SHA256]
"MUIVerb"="SHA256"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\02SHA256\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm SHA256 | format-list"


[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\03SHA384]
"MUIVerb"="SHA384"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\03SHA384\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm SHA384 | format-list"


[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\04SHA512]
"MUIVerb"="SHA512"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\04SHA512\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm SHA512 | format-list"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\05MACTripleDES]
"MUIVerb"="MACTripleDES"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\05MACTripleDES\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm MACTripleDES | format-list"


[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\06MD5]
"MUIVerb"="MD5"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\06MD5\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm MD5 | format-list"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\07RIPEMD160]
"MUIVerb"="RIPEMD160"

[HKEY_CLASSES_ROOT\*\shell\GetFileHash\shell\07RIPEMD160\command]
@="powershell.exe -noexit get-filehash -literalpath '%1' -algorithm RIPEMD160 | format-list"

Подякували: leofun011