Mausclick mit PowerShell in Bat Datei möglich?
Hey undzwar würde ich gerne an einer bestimmten stelle meines kleinen scripts einen Mausklick (pos 0,0) hinzufügen. Ich habe aber schon gehört, dass es in einer Bat datei nicht möglich ist, jedoch habe ich auf einem Forum gesehen, dass jemand einen PowerShell Script in eine Bat Datei gemacht hat. Geht das und wenn ja, kann jemand mir den Text für den Click bitte schreiben?
1 Antwort
Wenn Du das Positionieren des Cursors meinst....
demo.cmd
@echo off
chcp 65001 >nul & rem Umlaute richtig darstellen.
cls
rem Gänsefüßchen im PSCode müssen bei dieser Variante verdreifacht werden....
Powershell -c "&{[console] | Get-Member -Static}"
echo Das sind die Methoden und Einstellungen auf die man mit [console]::Begriff zugreifen kann.
echo drücke eine Taste um den Begin der Ausgabe zu gehen...
pause >nul
rem Cursor an den Anfang...
Powershell -c "&{[console]::CursorLeft=0 ; [console]::CursorTop=0 }"
rem und dort schreibt ....
pause
... das sollte man nicht Exzessiv betreiben.
Powershell braucht immer eine Ladezeit und Zeit für's compilieren und Ausführen.
Die Verwendung von Powershell-Einzeilern sollte man wegen dieses gewaltigen Wasserkopfes im Verhältnis zum Code auf ein Minimum begrenzen
Es ist zu überlegen ob man nicht alles in Powershell erledigt...
...oder eine Batch-Powershell-Hybrid nutzt:
Hybriddemo.cmd
<# : Batch Abschnitt ,Batch sieht in dieser Zeile die Eingabe aus der Datei #, Powershell sieht den Ebegin eines Kommentars.
@echo off
if "%~1" neq "" goto :run
chcp 65001 >nul
echo das ist die Batch...
echo Hilfe: Ziehe Dateien auf die die Batch "%~nx0"...
echo ...oder ach nicht
echo Die Dateinamen werden an das Powershellscript weitegeleitet.
timeout 2 >nul
:run
color 1f
cls
rem Diese Zeile nicht veränden! Startet Powershell ohne Rechtevergabe und übergibt Parameter über die Pipe
(for %%I in ("%~f0" %*) do @echo:%%~I)|powershell -noprofile "[Array]$argv = $input|?{$_}; iex (${%~f0} | out-string)"
pause
exit /b
: Ende Batch
: Ab der nächsten Zeile beginnt das eigentliche PowershellScript, da kannst Du Powershellcode einfügen wie es Dier beliebt... #>
#democode
"Jetzt bin ich in der Powershell"
$argv |%{ "`$argv[{0}]: $_" -f $i++};$i=$Null;
$ScriptName=$argv[0]
#alle übergebenen Parameter außer $argv[0] der Variable Params zuweisen:
$Params=$argv|Select -Skip 1
""
"Name der Hybridbatch:"
$ScriptName
#Params ist ein Array. Einzelne Elemente können über $Params[IndexNummer] aufgerufen werden.
if ($Params) {
""
"an die Batch uebergebene Parameter:"
$Params
}
"
"
[console]::CursorLeft=0
[console]::CursorTop=0
wow.... Danke aber das ist zu kompliziert für mich lol.
Ich wollte einfach nur in diesem winzigen code in der 3 - idk Zeile festlegen, dass die maus auf position 0,0 klickt 😅:
1: echo off
2: start /B chrome https://www.youtube.com/
3:
4: timeout 13
5: taskkill /f /im chrome.exe >nul 2>nul