Jump to content

Relaunch 2018: Willkommen im neuen Forum - Das MCSEboard.de wurde runderneuert. Wir wünschen Euch viel Spaß an Board.

Melde dich an, um diesem Inhalt zu folgen  
al3x

Datumsfeld aus csv auslesen

Empfohlene Beiträge

Da Powershell sowieso die neuere, modernere, mächtigere und von Microsoft auch in Zukunft noch unterstützte Technologie ist, würde ich auch empfehlen, Batch endlich in Rente zu schicken und es in reinem Powershell umzusetzen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,

 

wie umfangreich ist denn der Batch teil bzw. was tut der? Wenn du die Batch hier postest könnte man dir sicherlich das ein und andere Stichwort für die PowerShell dazu geben.

 

Gruß

Jan

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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%"

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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"

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesem Inhalt zu folgen  

×