balluf
Goto Top

Batch: Inhalt vieler NFOs in andere NFOs anhängen

Hallo zusammen.
ich komme mit meinem Vorhaben einfach nicht weiter und bitte um Hilfe.

Ich würde gerne den Inhalt vieler NFO Dateien an Speicherort A
in mehrere andere NFOs an Speicherort B kopieren, Quell und Zieldatei haben den selben Namen.
Die Inhalte von A sollen bei B unterhalb des bereits vorhandenen Inhaltes von B eingefügt werden.

Beispiel

NFO bei A mit dem Inhalt:
Vielen Dank fürs übersenden!
MfG blabla

NFO bei A mit dem Inhalt:
blabla, wird erledigt
___________________________________________

NFO bei B mit dem Inhalt:
blablablubb
blablablubb
blablablubb
plus Inhalt der NFO von A

NFO bei B mit dem Inhalt:
lalalalalalalala
lalalalalalalala
lalalalalalalala
plus Inhalt der NFO von A
____________________________________________


Mein Ansatz sieht wie folgt aus:

FOR %%i IN (*.nfo) DO copy "C:\Work\NFO\%%~ni.nfo "C:\Work\neue NFOs\%%~ni.nfo"  

Content-ID: 541707

Url: https://administrator.de/contentid/541707

Ausgedruckt am: 24.11.2024 um 20:11 Uhr

mayho33
mayho33 01.02.2020 aktualisiert um 00:47:12 Uhr
Goto Top
Hi!

Mir ist in Zeiten von Powershell und anderen, DOT.NET implementierenden Tools, nicht klar warum sich jemand mit Batch quält.

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt

Grüße!
Balluf
Balluf 01.02.2020 um 11:15:02 Uhr
Goto Top
Danke dafür, aber irgendwie kann ich damit leider nichts anfangen,
zumindest wüsste ich nicht wie?
ricardobohner
ricardobohner 01.02.2020 um 21:40:50 Uhr
Goto Top
Vieleicht weil sie kein powershell oder dot.net können....
ricardobohner
Lösung ricardobohner 01.02.2020 um 22:47:16 Uhr
Goto Top
Schau mal ob es das ist was du willst:

@echo off
Set A=%userprofile%\desktop\A
Set B=%userprofile%\desktop\B

for /r %A% %%a in (*.nfo) do if exist "%B%\%%~nxa" type "%%a">>"%B%\%%~nxa"  
pause


Kleines Video
mayho33
mayho33 02.02.2020 um 01:22:46 Uhr
Goto Top
Zitat von @ricardobohner:

Vieleicht weil sie kein powershell oder dot.net können....

Dot.Net muss man nicht können. Man nutzt dessen Methoden. Powershell tut das und wie mein 3-Zeiler oben zeigt ist es ganz simpel.

Bei Batch musst du jeden kleinen Firlefanz erst mal ausprogrammieren und jemand dem du das Ding dann gibst, muss die herzallerliebste Syntax erst mal verstehen können.
Da gehe ich doch lieber ein klein wenig mit der Zeit und muss mich nicht quälen, findest du nicht?

So ala: Google anwerfen => powershell + Get-Content eingeben => Entertaste drücken => den Artikel von Microsoft. Docs lesen.

Grüße!
Balluf
Balluf 02.02.2020 um 01:33:21 Uhr
Goto Top
Vielen vielen Dank,
dass ist genau das was ich gesucht habe.
ricardobohner
ricardobohner 02.02.2020 um 01:46:38 Uhr
Goto Top
Ja das stimmt schon das bei powershell fast alles einfacher geht das sagen fast alle die sich mit powershell auskennen. Aber ich glaube bei batch gehen die kommandos etwas schneller powershell braucht einfach ein paar secunden länger um zu "laden".

Aber powershell ist schon besser und dieses Jahr hab ich mir auch forgenommen powershell zu lernen wahrscheinlich fange ich diesen Monat an...
mayho33
mayho33 02.02.2020 um 01:57:04 Uhr
Goto Top
Zitat von @ricardobohner:
Aber ich glaube bei batch gehen die kommandos etwas schneller powershell braucht einfach ein paar secunden länger um zu "laden".

Da gebe ich dir recht. PS erfordert zwingend ein geladene Dot.Net. Am Ende fallen die 1 oder 2 Sekunden die es am Anfang länger braucht aber wirklich nicht ins Gewicht.

Grüße!