TITLE DIGITAL DATA - Run all files in directory @ECHO OFF REM ---------------------------------------------------------------------------- REM This script runs all specified files in the current directory REM REM Returns: REM ---------------------------------------------------------------------------- REM Copyright (c) 2024 by Digital Data GmbH REM REM Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim REM Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works REM ---------------------------------------------------------------------------- REM Creation Date / Author: 13.08.2015 / MK REM Version Date / Editor: 23.11.2024 / MK REM Version Number: 2.0.0.0 REM -------------------------------------------------------------- REM ------------------------set variables------------------------- REM -------------------------------------------------------------- SET /A ADMINMODE=1 SET FILEEXTENSION=*.ps1 REM -- Choose PowerShell Version -- SET POWERSHELLEXE="C:\Program Files\PowerShell\7\pwsh.exe" REM SET POWERSHELLEXE="C:\Program Files\PowerShell\6\pwsh.exe" REM SET POWERSHELLEXE="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" REM ------------------------------- SET DIRECTORY="%cd%" SET /A COUNT=0 SET LOGFILE="%cd%\error.log" REM -------------------------------------------------------------- REM ------------------------preparing part------------------------ REM -------------------------------------------------------------- SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION ECHO Program Startup %date% at %time:~0,8% o'clock, on %computername%. ECHO - IF !ADMINMODE! EQU 1 (ECHO WARNING: In AdminMode, network drives will maybe be unavailable! && timeout /T 10) REM -------------------------------------------------------------- REM ---------------------Running Scripts--------------------------- REM -------------------------------------------------------------- FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( ECHO %%f SET /a COUNT+=1 ) ECHO - ECHO Found %COUNT% File(s) with File Extension %FILEEXTENSION% in Directory: ECHO %DIRECTORY% ECHO - IF EXIST "!POWERSHELLEXE!" ( ECHO Running these scripts now: FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do ( ECHO - SET "SCRIPT=%%f" ECHO Running script: ECHO !SCRIPT! ECHO - SET "ARGUMENTS=-NoProfile -ExecutionPolicy Bypass -File \""!SCRIPT!\""" ECHO With Arguments: ECHO !ARGUMENTS! ECHO - SET "SUBCOMMAND=Start-Process -FilePath '!POWERSHELLEXE!' -WindowStyle hidden -ArgumentList '!ARGUMENTS!' " ECHO Subcommand: ECHO !SUBCOMMAND! ECHO - IF !ADMINMODE! EQU 1 ( SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden -Verb runas {!SUBCOMMAND!} " ) ELSE ( SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden {!SUBCOMMAND!} " ) ECHO In nested command: ECHO !COMMAND! powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "!COMMAND!" IF ERRORLEVEL 1 ( ECHO There was an error running the script: !SCRIPT! >> !LOGFILE! ) ) ) ELSE ( ECHO WARNING specified POWERSHELLEXE-Path does not exist or access denied! ECHO Falling back to build in Powershell Version. timeout /T 30 ECHO Running these scripts now: FOR /F "tokens=*" %%f in ('dir /b %FILEEXTENSION%') do ( ECHO - SET "SCRIPT=%%f" ECHO Running script: ECHO !SCRIPT! ECHO - SET "ARGUMENTS=-NoProfile -ExecutionPolicy Bypass -File \""!SCRIPT!\""" ECHO With Arguments: ECHO !ARGUMENTS! ECHO - SET "SUBCOMMAND=Start-Process -FilePath 'powershell.exe' -WindowStyle hidden -ArgumentList '!ARGUMENTS!' " ECHO Subcommand: ECHO !SUBCOMMAND! ECHO - IF !ADMINMODE! EQU 1 ( SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden -Verb runas {!SUBCOMMAND!} " ) ELSE ( SET "COMMAND=Start-Process powershell.exe -WindowStyle hidden {!SUBCOMMAND!} " ) ECHO In nested command: ECHO !COMMAND! powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "!COMMAND!" IF ERRORLEVEL 1 ( ECHO There was an error running the script: !SCRIPT! >> !LOGFILE! ) ) ) REM -------------------------------------------------------------- REM -------------------------final part--------------------------- REM -------------------------------------------------------------- ENDLOCAL ECHO - ECHO Program Complete %date% at %time:~0,8% o'clock, on %computername%. ECHO This Window will close in: timeout /T 10 exit