hali1988
Goto Top

3000 Dateien automatisch in 150 stückeln?

Hallo Leute,

ich möchte mit dem Programm ConText ca. 3000 LogIn-Scripte bearbeiten (Suchen & ersetzen).

Nun kann ich aber nur immer ca. 150 aufeinmal bearbeiten, weil ich 3000 Dateien nicht geladen bekomme.

Gibt es ein Tool, welches mir diese Datein in Unterordner a 150 Dateien sortiert?


Wäre euch echt dankbar face-smile


\\EDIT:

Hat sich erledigt - Mit UltraEdit kann man prima alles auto. ändern.

Content-Key: 217138

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

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

Member: Lochkartenstanzer
Lochkartenstanzer Sep 17, 2013 at 10:33:32 (UTC)
Goto Top
Zitat von @HALi1988:
Hallo Leute,

ich möchte mit dem Programm ConText ca. 3000 LogIn-Scripte bearbeiten (Suchen & ersetzen).

Wäre es da nciht sinnvolelr einfach einen Stream deitor wie z.B. sed zu verwenden?


Gibt es ein Tool, welches mir diese Datein in Unterordner a 150 Dateien sortiert?

Powershell, cmd, bash, etc. .-)

lks
Member: brammer
brammer Sep 17, 2013 at 10:34:10 (UTC)
Goto Top
Hallo,

kann es sein das du länger gebraucht hast diesen Beitrag zu schreiben, als es gebraucht hätte 20 neue ORDNER anzulegen und jeweiles 150 Dateien zu markieren und dahin zu verschieben?
Die brauchst du auch nicht selber zählen... das macht Windows eh für dich....

brammer
Member: Lochkartenstanzer
Lochkartenstanzer Sep 17, 2013 at 10:40:40 (UTC)
Goto Top
Zitat von @brammer:
kann es sein das du länger gebraucht hast diesen Beitrag zu schreiben, als es gebraucht hätte 20 neue ORDNER anzulegen
und jeweiles 150 Dateien zu markieren und dahin zu verschieben?

Stimmt, den explorer habe ich übersehen. .face-smile

lks
Member: HALi1988
HALi1988 Sep 17, 2013 at 11:52:37 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
> Zitat von @brammer:
> ----
> kann es sein das du länger gebraucht hast diesen Beitrag zu schreiben, als es gebraucht hätte 20 neue ORDNER
anzulegen
> und jeweiles 150 Dateien zu markieren und dahin zu verschieben?

Stimmt, den explorer habe ich übersehen. .face-smile

lks


Sagen wir es mal so...ich möchte wenn alle Scripte aufeinmal ändern. gibt es alternativen?
Member: colinardo
colinardo Sep 17, 2013 updated at 12:04:12 (UTC)
Goto Top
Zitat von @HALi1988:
Sagen wir es mal so...ich möchte wenn alle Scripte aufeinmal ändern. gibt es alternativen?
klar z.B. UltraEdit, oder man macht es mit einem Script - dazu gibt es hier im Forum genügend Scripts die einen Ordner mit allen Dateien bearbeiten. Oder muss ich das jetzt schon wieder runterbeten ?

Grüße Uwe
Member: Lochkartenstanzer
Lochkartenstanzer Sep 17, 2013 updated at 12:20:35 (UTC)
Goto Top
Zitat von @HALi1988:
Sagen wir es mal so...ich möchte wenn alle Scripte aufeinmal ändern. gibt es alternativen?

sagte ich doch.: sed

sed -e "s:searchstring:replacestring:g" -i  *.*

lks

nachtrag:

z.B. Per Batch alle Dateien mit einem bestimmten String löschen

liefert einen Hinweis, wie man für jede Datei einen einzelnen befehl absetzt. Oder stäber mal ein wenig in der Rubrik batch udn shell herumm, da wird man schnell fündig.
Member: HALi1988
HALi1988 Sep 17, 2013 at 12:20:44 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
> Zitat von @HALi1988:
> ----
> Sagen wir es mal so...ich möchte wenn alle Scripte aufeinmal ändern. gibt es alternativen?

sagte ich doch.: sed

> sed -e "s:searchstring:replacestring:g" -i  *.*
> 

lks


Hi,

meine Syntax sieht so aus:

sed -e "s:DE-HAL-PS1\DE-HAL-001-027-240:DE-HAL-PS3\DE-HAL-001-027-240:g" -i *.*
sed -e "s:DE-HAL-PS1\DE-HAL-001-027-241:DE-HAL-PS3\DE-HAL-001-027-241:g" -i *.*


Folgende Meldung bekomme ich: sed: cannot copy ./sedqNwY9i to desktop.ini: Invalid argument
Member: Lochkartenstanzer
Lochkartenstanzer Sep 17, 2013 updated at 13:09:06 (UTC)
Goto Top
Zitat von @HALi1988:
meine Syntax sieht so aus:

sed -e "s:DE-HAL-PS1\DE-HAL-001-027-240:DE-HAL-PS3\DE-HAL-001-027-240:g" -i *.*
sed -e "s:DE-HAL-PS1\DE-HAL-001-027-241:DE-HAL-PS3\DE-HAL-001-027-241:g" -i *.*


Folgende Meldung bekomme ich: sed: cannot copy ./sedqNwY9i to desktop.ini: Invalid argument

Bist Du in dem Verzeichnis, in dem die Dateien sind?
Die wildcards mußt Du natürlich an deien Bedürfnisse anpassen, wie z.B. "Datei*.txt" o.ä. desktop.ini ist meistens schreibgeshützt.

zur Not packst du das in einw For-schleife, etwa so ähnlich:

for /f "delims=" %I in (dir $dateipfad) do sed -e "s:DE-HAL-PS1\\DE-HAL-001-027-241:DE-HAL-PS3\\DE-HAL-001-027-241:g" -i %I

Und die "\" mußt du vermutlich verdoppeln ,d.h. "\\" nehmen, weil sed die als Escape-zeichen benutzt.

lks
Member: colinardo
colinardo Sep 17, 2013 updated at 15:23:13 (UTC)
Goto Top
Nachtrag:
Falls doch noch jemand, der später auf den Beitrag trifft, eine Lösung für die ursprüngliche Fragestellung(im Titel) braucht, kann ich folgendes Powershell-Script anbieten:
Das Script verteilt Dateien in gleichen Teilen gleichmäßig auf Unterordner. Der Ordner in dem die Dateien liegen gibt man in Zeile 1 an und die gewünschte Anzahl der Dateien in jedem Ordner, in Zeile 2. Die Dateien werden dann in Unterordner mit Namen sub_1 , sub_2 , etc. verschoben.
$folder = "C:\Ordner mit den Dateien"  
$splitNum = 150
$items = dir "$folder\*.*"  
$folderCount = [Math]::floor(($items.Count / $splitNum))
$rest = $items.Count % $splitNum
$splitNum
if (($items.Count) -ge $splitNum ){
    for ($i=0;$i -lt $folderCount ; $i++){
        $subFolder = "$folder\sub_$i"  
        if (!(Test-Path -Path $subFolder)){
            mkdir $subFolder
        }
        for ($j=$i*$splitNum;$j -lt ($i*$splitNum)+$splitNum ; $j++){
            $items[$j].MoveTo("$subFolder\$($items[$j].Name)")  
        }
        if ($i -eq $folderCount -1 -And $rest -ne 0){
            $subFolder = "$folder\sub_$($i+1)"  
            if (!(Test-Path -Path $subFolder)){
                mkdir $subFolder
            }
            for ($k = $j;$k -lt $j+$rest;$k++){
                $items[$k].MoveTo("$subFolder\$($items[$k].Name)")  
            }    
        }
    }
}else{
    write-host "Im Ordner $folder sind nur $($items.Count) Dateien enthalten! Eine Aufsplittung zu je $splitNum Dateien ist daher nicht möglich."  
}

Grüße Uwe