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-ID: 217138

Url: https://administrator.de/forum/3000-dateien-automatisch-in-150-stueckeln-217138.html

Ausgedruckt am: 19.01.2025 um 14:01 Uhr

Lochkartenstanzer
Lochkartenstanzer 17.09.2013 um 12:33:32 Uhr
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
brammer
brammer 17.09.2013 um 12:34:10 Uhr
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
Lochkartenstanzer
Lochkartenstanzer 17.09.2013 um 12:40:40 Uhr
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
HALi1988
HALi1988 17.09.2013 um 13:52:37 Uhr
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?
colinardo
colinardo 17.09.2013 aktualisiert um 14:04:12 Uhr
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
Lochkartenstanzer
Lochkartenstanzer 17.09.2013 aktualisiert um 14:20:35 Uhr
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.
HALi1988
HALi1988 17.09.2013 um 14:20:44 Uhr
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
Lochkartenstanzer
Lochkartenstanzer 17.09.2013 aktualisiert um 15:09:06 Uhr
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
colinardo
colinardo 17.09.2013 aktualisiert um 17:23:13 Uhr
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