Visual Basic: Powershell-Kommando ausführen lassen?

2 Antworten

Hier ein VB6 (VBA) Code. Etwas analoges sollte auch VB; VB.net haben.
  Es gibt wohl auch ne 64bit Variante dazu. 

Public Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory _
As String, ByVal nShowCmd As Long) As Long
Aufruf:
Call ShellExecute(0&, "Open", "C:\test.txt", "", "", 1)

a) PowerShell ist eine eigene Anwendung. die Shell-Methode greift auf den alten Befehlsprozessor cmd.exe zu.

b) PowerShell beruht ebenfalls auf dem .NET-Framework, kann also auch nicht mehr und nicht weniger als Visual Basic. Von daher würde ich über File- bzw. Directory-Objekte auf Dateien und ihre Eigenschaften (wie Erstellungsdatum) zugreifen - oder worauf auch immer PowerShell zugreifen soll. Spart zum Einen Wechsel der Programmiersprache und zum Andern einen Prozesswechsel.

Woher ich das weiß:Berufserfahrung – Software-Entwickler
WasEineFrage 
Fragesteller
 03.06.2020, 22:00

Das war jetzt hilfreich, allerdings weiß ich nicht so genau wie ich das umsetzen kann.

Ich habe die Codes:

$d1 = get-date 1.1.2012-19:11

(Zum definieren des Datums)

und

[System.IO.File]::SetCreationTime("C:\Users\Admin\Documents\Liste.pdf", $d1)

(Ersetzen der Einstellung am Speicherort der Datei).

In Powershell also nur 2 lines.

Wie würde das aussehen in VB?

Danke vielmals für die Hilfe schonmal!!

0
PWolff  03.06.2020, 23:34
@WasEineFrage
var d1 = new System.DateTime(2012, 1, 1, 19, 11, 0);
System.IO.File.SetCreationTime(@"C:\Users\Admin\Documents\Liste.pdf", d1);
0
PWolff  03.06.2020, 23:35
@PWolff

Sorry, das war C#. VB fast genauso:

Dim d1 = New System.DateTime(2012, 1, 1, 19, 11, 0)
System.IO.File.SetCreationTime("C:\Users\Admin\Documents\Liste.pdf", d1)
0