After some research I found an ugly workaround.
I removed the .ps1 file from the temporary folder and within the .cmd file I use the parameter -EncodedCommand instead of -File to directly inject the desired script into the batch file.
But getting the script as encoded command is a little bit tricky, cause it has to be unicode (two-byte chars) as Base64 string and not UTF-8 (one-byte chars), so Notepad++ can't be used for decoding.
Also an encoded command ignores line-breaks, which means, the commands have to end with a semicolon, to separate them.
So first take your .ps1 file and put a semicolon at the end of each command, then use the following script to convert it to base64:
$command = Get-Content .\myScript.ps1$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)$encodedCommand = [Convert]::ToBase64String($bytes)$encodedCommand
Copy the output of the file into your batch file:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -EncodedCommand ""...content of $encodedCommand...""' -Verb RunAs}"
And then you can execute your batch file which runs the desired Powershell script. Quite lengthy and not comfortable, but it works.
If anyone has a better idea, you're welcome.