Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Die ersten 1.000 Dateien eines Ordners öffnen

Frage Entwicklung Batch & Shell

Mitglied: hiyaeurope

hiyaeurope (Level 1) - Jetzt verbinden

02.02.2011, aktualisiert 18.10.2012, 4480 Aufrufe, 14 Kommentare

Also, ich habe erst vor 2 Tagen Batch-Dateien entdeckt, bin also komplett neu.

Ich habe hier gesehen, wie ich alle Dateien eines Ordners öffnen kann:

for %%i in ("C:\test\*.html") do @start "" "C:\Programme\Notepad++\notepad++.exe" "%%i"

Das funktioniert auch.
Problem ist, in dem Ordner sind mehr als 50.000 Dateien und Notepad kann nur so um die 1.000 gleichzeitig öffnen. Wie kann ich nun nur 1.000 Dateien öffnen lassen?
Die Sortierung spielt keine Rolle, ich würde die Dateien dann nach dem Bearbeiten einfach verschieben.

Beste Grüße
Hiya
Mitglied: 60730
02.02.2011 um 19:47 Uhr
moin,

das könnte etwas länger dauern, also erstmal nachsehen, ob ein B aus dem Batch Bereich online ist...
(Obwohl hier mittlerweile viele Wissende ohne B Nick gibt)

Obwohl - schau einfach in die Anleitung zum Thema For Schleife rein.

  • Du brauchst einen Zähler innerhalb einer Schleife - den kannst du entweder via call :Prozessline oder via delayedexpansion realisieren.
Set /? und da /a ansehen
  • Und du willst prüfen, ob der Zähler 999 erreicht hat
If /? und da equ oder GTR
  • Das mußt du in der schleife zwischen do und start einbauen.

Fertig

Alle "Fremdwörter" sind geeignete Wörter für die Suchfunktion, da findest du massig Beispiele.


btw: Weil du neu bist - ein Hallo wird hier gerne gesehen und manchmal gibts auch verbale rückrufaktionen in den Grußlosen Wald
Und wenn du wiisen möchtest - wie ich das lösen würde:

Obwohl ich dauernd xx Fenster offen hab - 999 Notepadfenster sind mir 997 zuviel....
call oder start /wait nehmen

Gruß
Bitte warten ..
Mitglied: Skyemugen
02.02.2011 um 19:56 Uhr
Aloha,

bah, mir raucht der Kopf! Nicht nur, wenn ich das das aufpoppen der Dateien denke aber auch beim batch selbst - das ist wirklich mal eine Aufgabe der anderen Art, hatten wir so hier auch noch nicht, Junge, Junge.

Ich zieh mich erstmal wieder zurück, Wäsche aufhängen und grübeln ...

Ich werde am Ende eh nicht die Lösung hier posten können aber mich interessiert mal diese Herausforderung

greetz André

edit: Du hast sicherlich auch hier gesehen, dass wir normalerweise die Leute begrüßen =)
Bitte warten ..
Mitglied: 90776
02.02.2011 um 20:12 Uhr
hallo

ich glaube zwar dass das machbar ist, aber vermutlich wird der PC abstürzen wenn fast gleichzeitig 1000 dateien geöffnet werden

Grüsse
Switcher
Bitte warten ..
Mitglied: bastla
02.02.2011 um 20:27 Uhr
Hallo hiyaeurope und willkommen im Forum (ja, auch ich gehöre zur Fraktion der "Begrüßer" )!

Du wolltest es ja so :
01.
@echo off & setlocal 
02.
set "Ordner=C:\test" 
03.
set "Dateien=*.html" 
04.
set /a Anzahl=1000 
05.
pushd "%Ordner%" 
06.
for /f %%i in ('dir /a-d "%Dateien%"^|findstr "Datei(en)"') do set /a Gesamt=%%i 
07.
set /a Ab=Gesamt-Anzahl 
08.
if %Ab% lss 0 set /a Ab=0 
09.
for /f "delims=" %%i in ('dir /b /a-d /o-n "%Dateien%"^|more +%Ab%') do echo start "" "C:\Programme\Notepad++\notepad++.exe" "%%i" 
10.
popd 
11.
pause
Für den Moment wird das Öffnen nur simuliert - wenn Du das "echo" aus Zeile 9 entfernst, geht's rund ...

Anmerkung: Nur oberflächlich getestet.
@T-Mo
call oder start /wait nehmen
Wozu?

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
02.02.2011 um 20:38 Uhr
Aloha bastla,

tralalala ich merk schon, ich hatte gute Ansätze aber auf die Lösung wäre ich die ganze Woche nicht gekommen ... auf die Idee mit Dateien im findstr und more in der zweiten Schleife wäre ich nicht gekommen *pfeif*

Wie würde Mr. Spock jetzt sagen:
Faszinierend, Captain

greetz André

edit aber wie öffnet er jetzt die nächsten tausend und wieder die nächsten ohne die bereits bearbeiteten erneut zu öffnen, das ist mir noch unklar (ja gut, er gab ja an nur die ersten 1000 zu wollen ... dann muss er wohl nach dem Bearbeiten die ersten tausend verschieben bzw. die letzten(?) - per batch natürlich ^.^ und dann wieder von vorne anfangen)
Bitte warten ..
Mitglied: bastla
02.02.2011 um 20:44 Uhr
@Skyemugen
Wenn's bei Dir ohenhin noch den Rest der Woche gedauert hätte, reduziert das mein schlechtes Gewissen wegen des etwas überstürzten Postens ...

Allerdings muss ich gestehen, dass es sich bei meinem Ansatz um eine halbe Mogelpackung handelt: geöffnet werden eigentlich die letzten 1000 Dateien - aber dafür sortiere ich sie auch umgekehrt.

aber wie öffnet er jetzt die nächsten tausend und wieder die nächsten ohne die bereits bearbeiteten erneut zu öffnen, das ist mir noch unklar
Wenn ich einen Batch zum Öffnen habe, sollte doch auch einer zum Verschieben zu machen sein ... [Edit] ... und gleich nochmal zu früh gepostet ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
02.02.2011 um 20:47 Uhr
Aloha bastla,

ja das fiel mir auch nach dem Editieren ein ^.^ - nebenbei TV gucken verdummt, hehe

greetz André
Bitte warten ..
Mitglied: bastla
02.02.2011 um 20:50 Uhr
[OT] @Skyemugen
nebenbei TV gucken verdummt, hehe
Wenn's wenigstens nicht 9live ist ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: hiyaeurope
02.02.2011 um 20:55 Uhr
Wow, das war flott.
Herzlichen Dank, da wäre ich wohl nie drauf gekommen.


@alle besorgten Leser:
Notepad öffnet in Reitern, da sind 1.000 Dateien kein Problem. Dann ein Makro mehrfach ausgeführt und innerhalb von 2 Minuten sind 1.000 Dateien geöffnet, bearbeitet, gespeichert, geschlossen und alles ist schön. *g*
Und nebenbei noch in ner Datenbank geschrieben, Dateien verschoben, Outlook auf und Firefox, ja mein Rechner ist schon ein Schätzchen.

Nochmals herzlichen Dank!!!!
Bitte warten ..
Mitglied: 60730
02.02.2011, aktualisiert 18.10.2012
Zitat von bastla:
[OT]
@T-Mo
>> call oder start /wait nehmen
Wozu?
  • Weil im nachhinein bestimmt sowas gesucht wird

Wenn's wenigstens nicht 9live ist ...
  • Nein - die deodorierten Hausfrauen mit der ehemalig am meisten gegoogelten Brünetten, die mal dem Clark seinen Kent poliert hat
Grüße
bastla
[/OT]

retour
Bitte warten ..
Mitglied: Skyemugen
02.02.2011 um 21:26 Uhr
Aloha,

ist gerade Werbung, dachte vielleicht gefällt dir die Möglichkeit in einem Durchgang durchzuarbeiten per
01.
@echo off & setlocal 
02.
set "Ordner=C:\test" 
03.
set "Dateien=*.html" 
04.
set "Umlagerung=D:\test" 
05.
set /a Anzahl=1000 
06.
 
07.
:Abfrage 
08.
echo Bitte waehle deine Option: 
09.
echo 1 = Durchlauf starten 
10.
echo 2 = Die eben genutzen Dateien verschieben (bedingt 1) 
11.
echo any key = Skript beenden 
12.
set /p Wahl=Bitte Zahl eingeben: 
13.
if /i "%Wahl%"=="1" ( 
14.
goto Durchlauf 
15.
) ELSE ( 
16.
if /i "%Wahl%"=="2" ( 
17.
goto verschieben 
18.
) ELSE ( 
19.
goto :eof 
20.
21.
22.
 
23.
:Durchlauf 
24.
pushd "%Ordner%" 
25.
for /f %%i in ('dir /a-d "%Dateien%"^|findstr "Datei(en)"') do set /a Gesamt=%%i 
26.
set /a Ab=Gesamt-Anzahl 
27.
if %Ab% lss 0 set /a Ab=0 
28.
for /f "delims=" %%i in ('dir /b /a-d /o-n "%Dateien%"^|more +%Ab%') do start "" "C:\Programme\Notepad++\notepad++.exe" "%%i" 
29.
popd 
30.
goto Abfrage 
31.
 
32.
:verschieben 
33.
if not defined Ab echo Keine unbearbeiteten Dateien vorhanden! & pause & goto :Abfrage 
34.
pushd "%Ordner%" 
35.
for /f "delims=" %%i in ('dir /b /a-d /o-n "%Dateien%"^|more +%Ab%') do move "%%i" %Umlagerung% >nul 
36.
popd 
37.
echo. 
38.
echo Verschieben erfolgreich 
39.
echo. 
40.
set "Ab=" 
41.
goto Abfrage
Damit kannst du dann den Durchlauf starten, die zuerst geöffneten Dateien danach verschieben, den Durchlauf erneut starten etc. etc. oder das Programm beenden. =)

edit: bastlas sinnvolle Ergänzung hinzugefügt (woran er so alles denkt ...) um versehentliches Verschieben unbearbeiteter Daten zu vermeiden

greetz André
Bitte warten ..
Mitglied: bastla
02.02.2011 um 21:35 Uhr
@Skyemugen
Vorschlag: Um dem Verschieben ohne vorhergehendes Bearbeiten vorzubeugen, könntest Du noch vor Zeile 33 eine Abfrage der Art
if not defined Ab echo Keine unbearbeiteten Dateien vorhanden! & pause & goto :Abfrage
einbauen und vor Zeile 39 mit
set "Ab="
die Voraussetzung dafür schaffen ...
Ein "exit" ohne "/b" ist für mich eigentlich nur ein Ärgernis, da ich grundsätzlich in einer Shell teste, und die ist dann natürlich zu - daher würde ich die Zeile 42 ersatzlos streichen oder gleich die Zeile 19 auf "goto :eof" ändern.

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
02.02.2011 um 21:43 Uhr
@bastla

interessante Erweiterung, ich hatte nur das Verschieben beim ersten Versuch getestet und nicht nach einem Durchlauf eventuell zwei Mal verschieben ^.^ zur Not könnte man auch statt 2 ja 7 wählen (die liegen nicht nebeneinander, vertippen ist nicht) :P

hm, wenn ich was zumache, dann soll es auch zu *lach* exit /b hm... vielleicht gewöhn ich's mir mal an ;) (oder auch :eof)

greetz André
Bitte warten ..
Mitglied: hiyaeurope
03.02.2011, aktualisiert 18.10.2012
@Skyemugen
Hach, wie schöööön. Da träumt man ja von.
Vielen mächtigen Dank.

@bastla: Und auch danke für einen anderen Code, den ich hier von Dir gefunden habe. Zur Info
Habe noch ein "type" eingefügt und jetzt werden die hier bearbeiteten Dateien dann zusammengeführt und in einzelne Ordner verschoben.
Super Klasse, große Hilfe.

Grüße Hiya
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (15)

Frage von Matsushita zum Thema Microsoft Office ...

Batch & Shell
gelöst exe Datei zum Öffnen einer anderen Datei (15)

Frage von Amateur01 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

Batch & Shell
Dateien umbenennen - ersten Zeichen entfernen (4)

Frage von jan999 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...