Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4422 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Mehr als 20 Excel Dateien öffnen gleichzeitig (7)

Frage von PizzaPepperoni zum Thema Microsoft Office ...

Batch & Shell
gelöst Dateien eines Ordners mit find welche 1234 im Namen haben umbenennen in x12345 (4)

Frage von reissaus73 zum Thema Batch & Shell ...

Visual Studio
gelöst Windows Form Dateien aus Ordner auflisten "dir" und per button öffnen (5)

Frage von Pilger83 zum Thema Visual Studio ...

Windows 10
Probleme beim öffnen von großen Powerpoint Dateien mit Windows 10 (7)

Frage von Schlafwvndler zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...