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-Key: 279737

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

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 114757
114757 Aug 09, 2015 at 18:43:24 (UTC)
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
Member: dax4fun
dax4fun Aug 09, 2015 at 18:53:57 (UTC)
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
Member: rubberman
Solution rubberman Aug 09, 2015 updated at 21:17:50 (UTC)
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
Mitglied: 114757
114757 Aug 09, 2015 updated at 20:30:38 (UTC)
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
Member: dax4fun
dax4fun Aug 09, 2015 updated at 21:17:38 (UTC)
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