{title}

Ich würde mich sehr über die Hilfe von jemandem freuen. Ich versuche Folgendes zu tun: 1. Lesen Sie die Titel aus einer Reihe von Dateien in einem Verzeichnis.2. Erstellen Sie einen Ordner für jede Datei basierend auf ihrem Namen, jedoch nicht auf ihrer Dateierweiterung.3. Verschieben Sie jede Datei in einen eigenen Ordner. Ich möchte wirklich etwas Hilfe, da ich über 50 GB Dateien habe und es einzeln tun würde, würde ich ein oder zwei Jahre dauern. Vielen Dank

Nehmen wir an, Sie haben Dateien im Ordner dog.txt cow.jpg Man In The Moon.xls (etc) (1) Machen Sie einen Ordner namens dog und verschieben Sie dog.txt in diesen Ordner genannt Kuh und verschieben Sie cow.jpg in das, machen Sie einen Ordner mit dem Namen Man In The Moon und verschieben Sie Man In The Moon.xls in das, und fahren Sie fort, bis alle Dateien fertig sind? Ist das richtig? Anstelle eines Ordners voller Dateien haben Sie also einen Ordner voller Unterordner, in denen sich jeweils eine Datei befindet? (2) Gibt es Dateien mit unterschiedlichen Erweiterungen, aber demselben Basisnamen, z. Horse.jpg Horse.txt Horse.doc, und wenn ja, was planen Sie in dieser Situation zu tun?

Lachs, in Bezug auf Ihren ersten Punkt ist das, was ich ja brauche, und es kann mehrere Dateien geben, die unabhängig von der Dateierweiterung in denselben Ordner kopiert werden müssen.

Versuchen Sie diesen Code. Es sollte in dem betreffenden Ordner abgelegt und unter einem Namen Ihrer Wahl mit der Erweiterung ".bat" gespeichert werden. Es wird nicht in die Liste der zu verarbeitenden Dateien aufgenommen. Nach dem Ausführen sollten Sie feststellen, dass es die einzige im Ordner verbleibende Datei ist, alle anderen wurden in Unterordner verschoben. Code: @echo offREM Durchlaufen Sie jede Datei in diesem Ordner REM Ohne diese Batchdatei! for/f "delims =" %% A in ('dir/b/ad ^ | find/v "% ~ nx0"') do (REM Wenn ein Ordner mit demselben Basisnamen REM dies tut nicht vorhanden, erstelle es, wenn es nicht vorhanden ist "%% ~ nA" md "%% ~ nA" REM Verschiebe die Datei in den Ordner REM und zeige Nachricht an das Benutzerecho Verschiebe die Datei: %% A in den Ordner: %% ~ nAmove "%% A" "%% ~ nA") REM Completeecho Doneecho.Pause

DOS-Variablen

Sehr geehrter Herr, ich danke Ihnen, dass Sie mein vorheriges Problem gelöst haben. Jetzt bitte ich Sie mit größtem Eifer, mir zu helfen, die vollständige Variablenliste zu erhalten, die erstellt werden muss.BAT-Dateien. Stellen Sie auch klar, wo und warum ich das Symbol <%> verwenden soll. Was bedeutet <% root%> bitte? Wo soll ich single <%> und wo double <%%> verwenden? Mit den meisten Grüßen und eifrigen Antworten, Ihr spdCHF.

C: > setALLUSERSPROFILE = C: Dokumente und Einstellungen All UsersAPPDATA = C: Dokumente und Einstellungen AnwendungsdatenCLIENTNAME = ConsoleCommonProgramFiles = C: Programme Gemeinsame DateienCOMPUTERNAME = COMPUTERComSpec = C: WINDOWS system32 cmd.exeFP_NO_HOST_ NOHOMEDRIVE = C: HOMEPATH = Dokumente und Einstellungen LOGONSERVER = COMPUTERNUMBER_OF_PROCESSORS = 1OS = Windows_NTPath = C: WINDOWS system32; C: WINDOWS WINDOWS System32 WbemPATHEXT = .COMB; ; .CMD; .VBS; .vbe; .JS; .JSE; WSF; .WSHPROCESSOR_ARCHITECTURE = x86PROCESSOR_IDENTIFIER = x86 Family 6 Model 8 Stepping 3, GenuineIntelPROCESSOR_LEVEL = 6PROCESSOR_REVISION = 0803ProgramFiles = C: Program FilesPROMPT = $ P $ GSESSIONNAME = ConsoleSystemDrive = C: SystemRoot = C: WINDOWSTEMP = C: DOCUME ~ 11 LOCALS ~ 1 TempTMP = C: DOCUME ~ 1 1 LOCALS ~ 1 TempUSERDOMAIN = COMPUTERUSERNAME = Bill USERPROFILE = C: Documents and Settings windir = C: WINDOWSC: > echo% windir% C: WINDOWSC: > echo% homepath% Dokumente und Einstellungen BillC: > MS-DOS-Variablen www.bluffton.edu/~nesterd/dos-variables.html Siehe auch die Seiten zu MS-DOS-Befehlen und Batchdateien. DOS hat drei Arten von "Variablen" - spezielle Symbole, die eine Zeichenfolge darstellen. Die ersten Befehlsargumente sind nur in einer Batch-Datei nützlich, die beiden anderen sind jedoch auch in der DOS-Befehlszeile verfügbar. Befehlsargumente mit den Namen% 1,% 2,% 3,.,% 9. Wenn Ihre Batch-Datei beispielsweise den Namen foo.bat hat, hat der Befehl foo yabba dabba doo% 1 = yabba,% 2 = dabba,% 3 = doo. (% 0 wäre übrigens foo, eine Tatsache, die manchmal nützlich ist.) Was passiert also, wenn die Befehlszeile mehr als 9 Argumente enthält? Die Befehlsverschiebung verschiebt die Argumente um einen Schritt nach unten, so dass das alte% 1 vergessen wird, das neue% 1 das alte% 2 usw. ist und das neue% 9 das 10. Argument in der Zeile ist (oder leer ist) wenn es nicht so viele Argumente gäbe). Dieser Befehl kann so oft wie nötig wiederholt werden, um auf alle Argumente zuzugreifen. Umgebungsvariablen, deren Namen eine beliebige Folge von Zahlen und Buchstaben sein können. Diese werden mit dem Befehl set definiert, der (wenn er selbst eingegeben wird) eine Liste aller aktuellen Umgebungsvariablen anzeigt. Um diese in einer Befehlszeile oder in einer Batch-Datei zu verwenden, setzen Sie den Namen zwischen die Prozentzeichen. Beispiel:% PATH% oder% path% (bei Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden). DOS verwendet einige Namen für bestimmte Zwecke. Die Variable DIRCMD enthält Standardoptionen für den Befehl dir. Wenn Sie beispielsweise dircmd =/oge/p festlegen, werden Verzeichnislisten mit Verzeichnissen angezeigt, die oben gruppiert sind, nach Erweiterung sortiert sind und für jedes Fenster angehalten werden. PROMPT, das häufig den Wert $ p $ g hat, teilt DOS mit, wie die Eingabeaufforderung angezeigt werden soll (der Text, der dem Benutzer mitteilt, dass der Computer auf eine Eingabe wartet). $ p bedeutet "Pfad des aktuellen Verzeichnisses anzeigen" und $ g bedeutet "größer als". Mit der folgenden Einstellung können Sie Ihren Schulgeist bei jedem von Ihnen eingegebenen Befehl anzeigen: set prompt = Bluffton Biber sind die besten! $ _ $ P $ g (Die Zeichen $ _ erzeugen einen "Wagenrücklauf/Zeilenvorschub" їЅ, was bedeutet, dass die Ausgabe fortgesetzt wird in der nächsten Zeile.) Die Variable PATH ist eine Liste von Verzeichnissen, die DOS durchsucht (nach Batch-Dateien usw.), wenn ein Befehl eingegeben wird. Wenn Sie die folgende Zeile eingeben, sucht DOS im Stammverzeichnis des Laufwerks C: nach Batch-Dateien. Außerdem sieht es überall so aus: set path = C: ;% path% If wird anstelle von C: verwendet , DOS durchsucht das Stammverzeichnis des aktuellen Laufwerks. "Nach" Variablen mit den Namen %% a, %% b, %% c,., %% z. Diese werden mit dem Befehl FOR (auf der Seite mit den Batchdateien beschrieben) verwendet, und die Werte dieser Variablen werden nach dieser Zeile vergessen. Bei Verwendung in der Befehlszeile wird nur ein Prozentzeichen benötigt.

Siehe auch% cd%% date%% time%% random%% errorlevel%% cmdextversion% und% cmdcmdline%. SET /? Eingeben an der Eingabeaufforderung für weitere Informationen. Viel Glück

Beliebte Beiträge