Jump to content

Datumsfeld aus csv auslesen


Direkt zur Lösung Gelöst von al3x,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Für Powershell gibt es so irrsinnig viele Quellen im Internet.... , kauf Dir doch einfach ein gutes Buch oder mach einen Online-Kurs. Wenn Du erst mal die Grundlagen drauf hast, erschließt sich der Rest quasi von ganz allein.

 

Ein sehr guter und kostenloser Einstieg könnte das hier sein:

 

https://mva.microsoft.com/en-US/training-courses/getting-started-with-microsoft-powershell-8276

 

... und wenn Du mit irgendetwas nicht weiterkommst, hast Du immernoch dieses Forum hier .. und auch noch andere

bearbeitet von BOfH_666
Link zu diesem Kommentar

hi,

also eigentlich nix dramatisches, in einem Ordner liegen .csv und .pdf, ich erstelle eine zip aus allen Dateien und benenne die zip mit dem aktuellen Datum.

(->Jetzt soll das Datum aber ja aus einer der csv gelesen und als Dateiname benutzt werden):

 

for /F "Tokens=1-4 delims=." %%i in ('date/t') do set date=%%k%%j%%i

if exist "pfad\*.zip" del "pfad\*.zip"

 

zip.exe "pfad\%date%.zip" "pfad\*.csv" "pfad\*.pdf"

 

echo %date% , %time% >> pfad-zu-logfile

 

copy "pfad\%date%.zip" "backuppfad"

 

start outlook.exe /a "pfad\%date.zip%"

Link zu diesem Kommentar

Da Du nicht spezifiziert hast, aus welcher CSV-Datei das Datum ausgelesen werden soll, hab ich einfach mal den jetzigen Status Quo als Vorlage benutzt.

Ich empfinde Powershell-Code immer viel weniger kryptisch als batch und für Leute mit Basis-Englisch-Kentnissen ansatzweise intuitiv. Es könnte also so aussehen:

$DatumHeute = Get-Date -Format 'yyyyMMdd'
$QuellPfad = 'der Pfad den Du beackern möchtest'
$ZipDatei = Join-Path -Path 'Pfad zum Verzeichnis in dem die Zip-Datei landen soll' -ChildPath ($DatumHeute + '.zip')

Start-Process -FilePath zip.exe -ArgumentList "$ZipDatei $QuellPfad\*.csv $QuellPfad\*.pdf"
Get-Date | Out-File -FilePath 'Log-Datei incl. Pfad' -Append -Encoding utf8
Start-Process -FilePath outlook.exe -ArgumentList "/a $ZipDatei"

Mit aktuellem Windows und Powershell (W10 und PS 5) könntest Du Dir das Zip-Tool auch noch sparen. Diese Funktionalität ist inzwischen eingebaut. Es wäre auch möglich die Zip-Datei aus der Powershell heraus zu versenden. Dann kannst Du das Alles per Aufgabenplanung starten und brauchst Dich in Zukunft nicht mehr manuell drum kümmern.

 

Edit: Achja … ganz vergessen: Welche CSV-Datei soll denn dann als Quelle für Dein Datum dienen? … die Erste? … die Letzte? … die Kleinste? … die Größte? .. die Jüngste? … die Älteste? … usw.  ;-)

 

Achso … auch noch als zusätzliche Erklärung: Ich bin jetzt mal davon ausgegangen, dass die Zip-Datei auch gleich im Zielverzeichnis erstellt werden kann. Falls das nicht möglich ist, kann man das natürlich auch noch anpassen.

bearbeitet von BOfH_666
Link zu diesem Kommentar

Da Du nicht spezifiziert hast, aus welcher CSV-Datei das Datum ausgelesen werden soll, hab ich einfach mal den jetzigen Status Quo als Vorlage benutzt.

Ich empfinde Powershell-Code immer viel weniger kryptisch als batch und für Leute mit Basis-Englisch-Kentnissen ansatzweise intuitiv. Es könnte also so aussehen:

$DatumHeute = Get-Date -Format 'yyyyMMdd'
$QuellPfad = 'der Pfad den Du beackern möchtest'
$ZipDatei = Join-Path -Path 'Pfad zum Verzeichnis in dem die Zip-Datei landen soll' -ChildPath ($DatumHeute + '.zip')

Get-ChildItem -Path $Pfad -Filter *.zip -File | Remove-Item -Force
Start-Process -FilePath zip.exe -ArgumentList "$ZipDatei $QuellPfad\*.csv $QuellPfad\*.pdf"
Get-Date | Out-File -FilePath 'Log-Datei incl. Pfad' -Append -Encoding utf8
Start-Process -FilePath outlook.exe -ArgumentList "/a $ZipDatei"

Mit aktuellem Windows und Powershell (W10 und PS 5) könntest Du Dir das Zip-Tool auch noch sparen. Diese Funktionalität ist inzwischen eingebaut. Es wäre auch möglich die Zip-Datei aus der Powershell heraus zu versenden. Dann kannst Du das Alles per Aufgabenplanung starten und brauchst Dich in Zukunft nicht mehr manuell drum kümmern.

 

Edit: Achja … ganz vergessen: Welche CSV-Datei soll denn dann als Quelle für Dein Datum dienen? … die Erste? … die Letzte? … die Kleinste? … die Größte? .. die Jüngste? … die Älteste? … usw.  ;-)

 

hmmmmm :) das sieht von der Menge ja recht übersichtlich aus. Muss ich mal Testen....jedenfalls vielen Dank für den Input!

 

Welche csv wäre eigentlich egal, da in allen das gleiche Datum drin steht.

Link zu diesem Kommentar

OK, dann stellen wir das Ganze wieder etwas um und nutzen Dukels Vorschlag … der hatte ja funktioniert …

$QuellPfad = 'der Pfad den Du beackern möchtest'
$ErsteBeliebigeCSVDatei = Get-ChildItem -Path $QuellPfad -Filter *.csv -File | Select-Object -First 1 | Select-Object -ExpandProperty FullName
$Datum = (Get-Content -Path $ErsteBeliebigeCSVDatei)[1].split(';')[16]
$ZipDatei = Join-Path -Path 'Pfad zum Verzeichnis in dem die Zip-Datei landen soll' -ChildPath ($Datum + '.zip')

Start-Process -FilePath zip.exe -ArgumentList "$ZipDatei $QuellPfad\*.csv $QuellPfad\*.pdf"
Get-Date | Out-File -FilePath 'Log-Datei incl. Pfad' -Append -Encoding utf8
Start-Process -FilePath outlook.exe -ArgumentList "/a $ZipDatei"
Link zu diesem Kommentar

Wenn ich Dir was empfehlen dürfte: Tu Dir selbst einen Gefallen und schaff Dir die Grundlagen von Powershell mit einem Buch oder Kurs oder Online-Tutorial drauf - jedenfalls irgendwie geordnet und didaktisch aufbereitet. Mit ein bisschen rumspielen entgehen Dir vermutlich ein paar grundlegende Verfahren und Methoden und das führt eher zu Missverständnissen, Fehlern und Frustration.

 

Ich hatte ja oben schon den MVA-Einstiegs-Kurs verlinkt - hier in diesem Thread findest Du noch ein paar mehr gute Quellen, um mit Powershell anzufangen: Beginner Sites and Tutorials.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...