Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

powershell aufrufen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hge2001



Anmeldungsdatum: 26.02.2008
Beiträge: 18

BeitragVerfasst am: 02.04.2021, 15:59    Titel: powershell aufrufen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
UEZ



Anmeldungsdatum: 24.06.2016
Beiträge: 129
Wohnort: Opel Stadt

BeitragVerfasst am: 23.04.2021, 22:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
hge2001



Anmeldungsdatum: 26.02.2008
Beiträge: 18

BeitragVerfasst am: 23.06.2021, 12:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz