Top-Themen

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 Bestimme Anzahl an htm Files in Unterordner verschieben.

Mitglied: GnozoNAV

GnozoNAV (Level 1) - Jetzt verbinden

24.08.2011, aktualisiert 18.10.2012, 3545 Aufrufe, 6 Kommentare

Ich beabsichtife eine Verschiebung von 63000 htm Files in Unterordner a la 600 Files.

Hallo,

Ich habe ein Problem und möchte dies durch einen Batch lösen. Wäre super, wenn sich jemand Zeit nimmt um mir dort auszuhelfen.

Ich habe um die 63000 .htm Files in dem Ordner "C:\MyHTMLHelp\Project\addin_a\Source" und möchte nun alle Dateien in Unterordner aufteilen. Jeder ordner sollte 600 .htm Files beinhalten. Bis auf den letzten, da ist es logisch, dass es nicht genau 600 sein können. Ist aber kein Problem.

Also:
600 htm Files in den Ordner "C:\MyHTMLHelp\Project\addin_a\Source\Ordner1"
600 htm Files in den Ordner "C:\MyHTMLHelp\Project\addin_a\Source\Ordner2"
...
usw.

Es muss aber beachtet werden, dass die Unterordner noch nicht existieren. Also muss ein neuer Ordner quasi in dem Verzeichnis "C:\MyHTMLHelp\Project\addin_a\Source" angelegt werden und dort dann die 600 Files eingeschoben werden.

Wäre super, wenn sich da jemand kurz zeit nehmen könnte. Bis jetzt hab ich es nur geschafft alle Dateien in einen Ordner zu schieben. Das mit der abzählung das nach 600 schluss ist, hab ich nicht hinbekommen. Auch das erstellen eines neuen Ordners ist mir noch nicht so ganz klar.

Also vielleicht hat ja jemand die Zeit und bastelt so einen kleinen Batch kurz und kann mir noch erklären, was er pro Code zeile genau macht, denn einfach nur die .bat ausführen hat ja nun auch keinen großen Lerneffekt.

Ich hab mir diesen Thread schon durchgelsen aber kann mangels fehlender Erfahrung im Bereich Batch keine Schlüsse draus ziehen.
https://www.administrator.de/index.php?content=155260

Mit freundlichen Grüßen

Lukas Patz
Mitglied: pieh-ejdsch
24.08.2011 um 13:31 Uhr
moin Lukas,

magst Du etwas fertiges oder etwas zum selbst Probieren
Begrenzte Anzahl von Dateien verschieben

hier kannst Du noch etwas anpassen?

Bei Fragen einfach diese stellen.

Gruß Phil
Bitte warten ..
Mitglied: GnozoNAV
24.08.2011 um 13:46 Uhr
Also ich hab mir deinen Link jetzt mal angeschaut und mit den Code genommen und so angepasst, wie ich denke, dass es richtig ist :D

01.
::----snipp----Dateien-Blockweise-verschieben 
02.
@echo Off 
03.
set Woher="C:\MyHTMLHelp\Project\addin_a\Source" 
04.
set "C:\MyHTMLHelp\Project\addin_a\Source\Ordner1" 
05.
set "Dateityp=*.htm" 
06.
 
07.
pushD %Woher% 
08.
 
09.
del "%temp%\tmp" 2>nul 
10.
if exist "%temp%\tmp2" (move "%temp%\tmp2" "%temp%\tmp">nul ) else dir /b %Dateityp%>"%temp%\tmp" 
11.
 
12.
call :move 600 
13.
popD 
14.
goto :eof 
15.
 
16.
 
17.
:move 
18.
set "Nr=1" 
19.
for /f "usebackq delims=" %%i in ("%temp%\tmp") do (@ECHO move "%%i" "%Dorthin%\" 
20.
	setlocal enabledelayedexpansion 
21.
	if !Nr! == %1 endlocal & set "Nr=1"&more +%1 "%temp%\tmp">"%temp%\tmp2"&goto :eof 
22.
	endlocal & set /a Nr+=1 
23.
24.
::----snapp----Dateien-Blockweise-verschieben
Also sofern ich das jetzt richtig verstehe, würde er 600 htm Files in den Ordner1 verschieben? Muss ich dann jeweils einen neuen Ordner anlegen wie z.b. Ordner2 und die .bat dann ergänzen und wieder ausführen, bis ich keine htm Files mehr habe oder erstellt er automatisch einen neuen Ordner?

Sorry aber mit Batch kenn ich mich gar nicht aus, bin Navision Entwickler.

Zitat von pieh-ejdsch:
magst Du etwas fertiges oder etwas zum selbst Probieren

Aus zeitgründen wohl eher etwas fertiges :/

Beste Grüße

Lukas
Bitte warten ..
Mitglied: Skyemugen
24.08.2011 um 14:34 Uhr
Aloha,

abgesehen davon, dass bei set "Dorthin=C:\..." das Dorthin bei dir verloren ging sollte die Wortgruppe Dateien-Blockweise-verschieben doch nahe legen, dass der Grundcode an sich auch nur das macht, alles von A nach B und nichts mit C, D etc. (geht auch aus dem alten Thread hervor).

move bewegt nur, erstellt aber nichts, dass heißt:
  • Entweder du legst bereits weitere Ordner an und änderst das pro Durchgang in der Batch
oder
  • Man lässt per Batch (von vornherein am Besten) die Verzeichnisse anlegen (mit Nummerierung und nur sofern notwendig und der vorangehende bereits existiert und per counter) und lässt ihn solange durchjagen, bis nichts mehr zum Verschieben vorhanden ist

Und weil ich heute meinen faulen Tag habe gibt's auch überlasse ich die weitere Abarbeitung meinen Batch-Kollegen

greetz André

edit @bastla, soso Da hätte ich zumindest eine Suchaktion starten müssen aber die Faulheit heute *lächz - so warm*
Bitte warten ..
Mitglied: bastla
24.08.2011, aktualisiert 18.10.2012
@skye
Faul? Kann ich auch: Batch um Dateien nach Anzahl in Ordner abzulegen

Grüße
bastla

[Edit] @skye
Da hätte ich zumindest eine Suchaktion starten müssen
Das ist der Vorteil, wenn man(n) dabei war ...
[/Edit]
Bitte warten ..
Mitglied: Friemler
24.08.2011 um 15:30 Uhr
Hallo GnozoNAV,

teste mal folgendes:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "SrcDir=C:\MyHTMLHelp\Project\addin_a\Source" 
07.
set "FileType=htm" 
08.
set "nFiles=600" 
09.
 
10.
 
11.
set /a "Cntr=1" 
12.
 
13.
:Loop 
14.
  set "FilesAvailable=" 
15.
 
16.
  for /f "tokens=1* delims=:" %%a in ('dir /b /a:-d /o:n "%SrcDir%\*.%FileType%" 2^>NUL ^| findstr /n "^"') do ( 
17.
    if %%a leq %nFiles% ( 
18.
      if %%a equ 1 ( 
19.
        md "%SrcDir%\Ordner%Cntr%" 
20.
21.
 
22.
      move "%SrcDir%\%%b" "%SrcDir%\Ordner%Cntr%\%%b" 
23.
      set "FilesAvailable=1" 
24.
25.
26.
 
27.
  set /a "Cntr+=1" 
28.
if defined FilesAvailable goto :Loop
Im Kopf der FOR-Schleife ließt der DIR-Befehl alle HTM-Dateien im Quellverzeichnis ein. Seine (wegen /o:n alphabetisch sortierte) Ausgabe (wegen 2^>NUL aber nicht die Fehlermeldungen) wird über eine Pipe an FINDSTR weitergereicht, was wegen dem Parameter "^" (steht für Zeilenanfang) alle Zeilen findet und wegen /n Nummern vor alle Zeilen schreibt.

Die daraus resultierenden Ausgabezeilen werden von der FOR-Schleife in Tokens zerlegt (siehe mein Tutorial zur FOR-Schleife). Das erste Token ist wegen delims=: die Zeilennummer (enthalten in der Laufvariablen %%a), das zweite Token ist wegen dem Stern in tokens=1* der Rest der Zeile, also der Dateiname (enthalten in der automatisch erzeugten Laufvariablen %%b).

In der Schleife wird geprüft, ob die Zeilennummer kleiner oder gleich 600 ist. Wenn ja wird geprüft ob sie gleich 1 ist. Wenn ja, wird ein neues Verzeichnis angelegt. Dazu wird die Zählervariable Cntr benutzt. Danach wird die gerade aktuelle Datei in das neu erstellte Verzeichnis verschoben und die Variable FilesAvailable auf 1 gesetzt.

Wenn die geforderte Anzahl Dateien verschoben wurde (wegen Zeile 8 also 600 Stück), stimmt die Bedingung in Zeile 17 nicht mehr und alle restlichen Dateien werden überlesen.

Nach dem Ende der FOR-Schleife wird in Zeile 28 geprüft, ob die Variable FilesAvailable existiert. Das ist nur der Fall, wenn zuvor die FOR-Schleife durchlaufen wurde, da die Variable in Zeile 14 gelöscht wird. Falls die Variable existiert, wird zum Label :Loop gesprungen und der Ablauf beginnt von neuem.

Diesmal ist die Dateiliste, die von DIR geliefert wird, um 600 Dateien kürzer.

Das wird solange wiederholt, bis DIR (wegen Zeile 7) keine HTM-Dateien mehr findet, dann wird die FOR-Schleife nicht durchlaufen und FilesAvailable existiert in Zeile 28 nicht, was zum Beenden des Scripts führt.

Gruß
Friemler
Bitte warten ..
Mitglied: GnozoNAV
24.08.2011 um 16:09 Uhr
Der Code von Friemler ist ja mal sowas von geil
Er hat auf jedenfall genauso funktioniert, wie ich mir das vorgestellt habe und ging sogar richtig fix.

Ich möchte mich nocheinmal herzlich bei allen Leuten bedanken, die mir geholfen haben und besonders bei Friemler, der sich die Zeit genommen hat und extra einen Batch geschrieben hat und eine Erklärung dazu. DANKE

Der Batch ist ja auch zemlich nützlich allgemein um mal einen Ordner aufzuräumen.

Beste Grüße

Lukas
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

txt File mit Batch ab bestimmer Zeilen Anzahl in Zwei .txt Files splitten

gelöst Frage von FaysaxBatch & Shell4 Kommentare

Hallo miteinander, bisher bin ich über Google leider nicht fündig geworden aber vielleicht hilft mir hier jemand. Ich möchte ...

Windows Tools

Bestimmte Anzahl an Dateien aus einem Verzeichnis in ein anderes verschieben

gelöst Frage von wernerzWindows Tools5 Kommentare

Hi, ich sitze jetzt hier schon seit Stunden und versuche mit allen möglichen Befehlen es selbst hin zu bekommen, ...

VB for Applications

VBS oder Batch um eine Datei in Unterordner zu verschieben

Frage von MrRoyalVB for Applications1 Kommentar

Hallo zusammen, ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus. ...

Batch & Shell

Per Batch Dateien aus Unterordner verschieben

gelöst Frage von ministaBatch & Shell10 Kommentare

Hallo Zusammen Ich habe folgende Struktur: Ich möchte nun dass alle Dateien aus dem Ordner B und deren Subordner ...

Neue Wissensbeiträge
Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 3 StundenSonstige Systeme1 Kommentar

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 7 StundenDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 11 StundenWindows 102 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 1 TagHumor (lol)1 Kommentar

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Werksreset HP 1920S-24G
gelöst Frage von HenereNetzwerkgrundlagen14 Kommentare

Servus zusammen, ich habe mir 2 neue Switche zugelegt, doch ich komme damit nicht ganz klar. Waren Vorführgeräte zum ...

Viren und Trojaner
Office365 Trojaner Analyse
Frage von ZeppelinViren und Trojaner14 Kommentare

Liebe Community, ich wende mich an euch, um mehr über den Office365 Trojaner zu erfahren, welcher grade seine Runden ...

Firewall
Sophos UTM 9.5 Firewall Log-File durchsuchen
gelöst Frage von Leo-leFirewall12 Kommentare

Hallo zusammen, weiß jemand von Euch, ob man bei der Sophos die Firewall logs noch etwas besser filtern kann? ...

Netzwerke
Anzahl der Subnetze
gelöst Frage von CrownClownNetzwerke11 Kommentare

Hallo, Wie kann ich verstehen, wie viele Subnetze ich habe, wenn mein Subnetmaske 255.255.255.0 und mein ip z.B. 192.243.14.63 ...