![Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht](misc/logos/logo.png) |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hge2001
Anmeldungsdatum: 26.02.2008 Beiträge: 18
|
Verfasst am: 02.04.2021, 16:59 Titel: powershell aufrufen |
|
|
Hallo,
In den letzten Tagen hatte ich das Problem, dass meine Bank nur .xlxs statt wie vorher .csv erstellte. Nun kann man leicht mit excel die Datei einlesen und als .csv abspeichern. Das ist aber auf die Dauer unpraktisch, daher habe ich mich im Netz mal nach einer Lösung umgeschaut. Ich stieß auf powershell, dass schon etliche Jahre im Windows schlummert und mit dem man tolle Sachen machen kann; es ist aber wesentlich komplexer als die command shell, die wir alle kennen.
Mit folgendem Powershellscript lässt sich eine .xlxs Datei batchmäßig in eine csv datei umwandeln.
script PS1.PS1
Code: | function Get-ScriptDirectory {
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$PA = Get-ScriptDirectory
$PA = $PA + "\"
$xlCSV = 6
$Excel = New-Object -Com Excel.Application
$Excel.visible = $False
$Excel.displayalerts=$False
$WorkBook = $Excel.Workbooks.Open($PA + "BARKDK.xlsx")
$Workbook.SaveAs($PA + "BARKDK.csv",$xlCSV)
$Excel.quit()
|
Mit Click auf das Script (als Administrator) lässt sich dieses ps1.ps1 schon mal ausführen. Das war mir aber zu unpraktisch, daher habe ich eine Möglichkeit gesucht, es direkt aus FB auszuführen. mit diesem Code ging es dann.
Code: | dim as string s,p,ap=""""
P=Curdir
S = " PowerShell.exe -ExecutionPolicy BYPASS -Command "
S = S + AP +"& '" + P + "\PS1.ps1'" +AP
Shell (S) |
Ich möchte betonen, dass ich kein Experte in Powershell bin; vielleicht lässt sich am o.a. Code was optimieren. Aber ich bin mit der Lösung erstmal zufrieden. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
UEZ
![](images/avatars/586155220576d13660f1b1.png)
Anmeldungsdatum: 24.06.2016 Beiträge: 129 Wohnort: Opel Stadt
|
Verfasst am: 23.04.2021, 23:59 Titel: |
|
|
Du kannst auch über die COM direkt mit Excel kommunizieren und steuern, und somit ist der Weg über PS nicht nötig.
Ich hatte mal ein Beispiel mit Word über COM gepostet, d.h. mit Excel sollte es ähnlich funktionieren. _________________ Gruß,
UEZ |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
hge2001
Anmeldungsdatum: 26.02.2008 Beiträge: 18
|
Verfasst am: 23.06.2021, 13:15 Titel: |
|
|
Danke UEZ für den Tipp, dem werde ich mal nachgehen.
Zu der powershell-Lösung..
In dieser Woche wurde plötzlich unter Win10 der Start von powershell wie oben beschrieben vom windows defender unterdrückt. (ist auch irgendwie verständlich). Man kann das Problem aber dadurch lösen, dass man dieses Programm explizit beim windows defender zulässt. Wenn man die Meldung anklickt gibt es verschiedene Aktionen, eine davon ist die Zulassung dieses Programms. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|