dax4fun
Goto Top

Text Datei öffnen. Wert ändern . in anderen Ordner kopieren

Hallo hoffe es ist noch wer da und nicht alle im Urlaub face-smile

Habe einen Ordner wo hin und wieder txt Dateien rein kommen, jetzt soll nur die 4.te Zeile statt 1234567890123456 in 1000000000000084 geändert werden und in einen anderen Ordner verschoben werden

Problem:

VOR: Ordner1\20150809123123049485.txt
350,1,______,_,__;+6 BL:;
350,1,______,_,__;+7 20150723134724300100;
350,1,______,_,__;+8 01000009025509980078;
48,1,______,_,__;1234567890123456;1;0000;
52,1,______,_,__;1;100.00;0.00;
53,1,______,_,__;
56,1,______,_,__;


NACH: Ordner2\20150809123123049485.txt
350,1,______,_,__;+6 BL:;
350,1,______,_,__;+7 20150723134724300100;
350,1,______,_,__;+8 01000009025509980078;
48,1,______,_,__;1000000000000084;1;0000;
52,1,______,_,__;1;100.00;0.00;
53,1,______,_,__;
56,1,______,_,__;

Ich hänge bei : txt name unterschiedlich (2015123xxx.txt , 2015456xxx.txt ) und mal hab ich 10 Dateien und mal keine ????
Danke

Content-ID: 279737

Url: https://administrator.de/forum/text-datei-oeffnen-wert-aendern-in-anderen-ordner-kopieren-279737.html

Ausgedruckt am: 23.12.2024 um 15:12 Uhr

114757
114757 09.08.2015 um 20:43:24 Uhr
Goto Top
Moin,
bitteschön mit Powershell gehts so:
$folderIN = 'C:\Ordner1'  
$folderOUT = 'C:\Ordner2'  
gci $folderIN -Filter *.txt | %{
    $content = gc $_.Fullname
    $content[3] = $content[3] -replace '(.*?);(.*?);(.*)','$1;1000000000000084;$3'  
    $content | set-content "$folderOUT\$($_.Name)"  
}
Gruß jodel32
dax4fun
dax4fun 09.08.2015 um 20:53:57 Uhr
Goto Top
Super, mein Fehler!
Nächste Frage im Forum :D
winxp powershell installieren auf 100+ Rechner face-smile

Bitte Batch !

wenn ich diesen powershell code betrachte... ich hab keinen ahnung was da gemacht wird damit ich mir was abschauen kann
rubberman
Lösung rubberman 09.08.2015 aktualisiert um 23:17:50 Uhr
Goto Top
Hallo dax4fun.

winxp powershell installieren auf 100+ Rechner
Natürlich nicht!!! Win XP deinstallieren auf 100+ Rechnern würde definitiv mehr Sinn machen, aber naja...

@echo off &setlocal
set "folder1=D:\Ordner1"  
set "folder2=D:\Ordner2"  
set "newval=1000000000000084"  

pushd "%folder1%"  
for /f "delims=" %%i in ('dir /a-d /b *.txt') do (  
  set "name=%%i"  
  call :procfile
)
popd
exit /b

:procfile
setlocal EnableDelayedExpansion
for /f %%j in ('type "!name!"^|find /c /v ""') do set /a num=%%j  
if %num% lss 4 (endlocal &exit /b)
<"!name!" >"!folder2!\!name!" (  
  for /l %%j in (1 1 3) do (
    set "line=" &set /p "line="  
    echo(!line!
  )
  set "line=" &set /p "line="  
  for /f "tokens=1,2* delims=;" %%j in ("!line!") do echo(%%j;!newval!;%%l  
  for /l %%j in (5 1 %num%) do (
    set "line=" &set /p "line="  
    echo(!line!
  )
)
REM del "!name!"  
endlocal
exit /b
Das REM in Zeile 30 entfernen, wenn es wie gewünscht funktionieren sollte.

Grüße
rubberman
114757
114757 09.08.2015 aktualisiert um 22:30:38 Uhr
Goto Top
winxp
Hahaha face-big-smile der war gut. Steinzeit lässt grüßen ... hab da noch ein paar Knüppel im Keller liegen, die schick ich euch face-smile

p.s. und nicht vergessen, der letzte in der Höhle macht das Licht ähhh Feuer aus face-wink
dax4fun
dax4fun 09.08.2015 aktualisiert um 23:17:38 Uhr
Goto Top
Haha ja leider würd ich auch ändern geht aber nicht .....

Danke @rubberman wieder mal die Haut gerettet

Schöne Grüsse
dAX