CMD Befehlsuche

Diskutiere CMD Befehlsuche im Developer Network Forum im Bereich Hardware & Software Forum; -.-..."
  • CMD Befehlsuche Beitrag #21
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
-.-..."
 
  • CMD Befehlsuche Beitrag #22
bummelbum

bummelbum

Bekanntes Mitglied
Dabei seit
18.04.2009
Beiträge
946
Reaktionspunkte
0
Oh Tschuldigung hatte ich vergessen :tr

Also habe es fix mal ausprobiert:

Code:
@echo off

if %1.==. goto ask
if %1.==copy. goto copy
set muster=%1
goto seek

:ask
set /P muster="Suchmuster: "

:seek
dir C:\%muster% /s /b > "%TEMP%\sk.tmp"
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp"
set muster=
set answer=
goto ende

:copy
copy %2 "%USERPROFILE%\Desktop\Ordner"

:ende

Den Code in den Editor gedrückt, das ganze als Search&Copy.bat abgespeichert, auf dem Desktop einen Ordner "Ordner" erzwungen und dann als Suchmuster "*.lnk" eingegeben.
Und funzt Wumbaba :grinning:
Ergebnis: Hab jetzt 1065 Links in dem Ordner.

Wenn du jetzt noch den von Haiko erwähnten Winrar befehl dahinter packst kannst du es auch gleich in ein Rar verdödeln.:lach:
 
  • CMD Befehlsuche Beitrag #23
H

Hackmack

Bekanntes Mitglied
Dabei seit
04.04.2009
Beiträge
47
Reaktionspunkte
0
was ich echt geil finde: anstatt ne halbe Stunde selber mal zu lesen und zu basteln, wartet er lieber 2 Wochen, bis ihm jemand anders die Arbeit abnimmt :)
 
  • CMD Befehlsuche Beitrag #24
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Hast du dir eigentlich die Beiträge mal durchgelesen?
Ich geh zufällig noch arbeiten und verbringe nicht so viel Zeit am Rechner wie ichs gerne würde.
Das ich mich noch nicht wirklich damit auskenne steht ja wohl fest, dass ich eine Antwort erwarte wenn man sowas schreibt ist ja wohl verständlich.
Hast du noch Fragen? :)
Wenn du das in einer halben Std lernst dann Hut ab. Nur wie lange ich worauf warte, lass das mal meine Sorge sein ;)


*neon

Ps: Danke für die Antwort bummelbum, es funktioniert nun wunderbar :)
 
  • CMD Befehlsuche Beitrag #25
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Hey. Auch wenns langsam nervig werden könnte.
Es hat leider doch nicht geklappt. Hatte gedacht er kopiere die Dateien und habs ausgeschaltet (Zeit mangel)
Nun aber hab ich beim wiedertesten festgestellt das er mir immernoch ALLE statt nur die "*.jpg" Dateien speichert.
Ich mache folgendes zur Bat Datei.

@echo off

if %1.==. goto ask
if %1.==copy. goto copy
set muster=%1
goto seek

:ask
set /P muster="Suchmuster: *.jpg

:seek
dir D:\%muster% /s /b > "%TEMP%\sk.tmp"
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp"
set muster=
set answer=
goto ende

:copy
copy %2 "%USERPROFILE%\Desktop\Ordner"

:ende

dir D: (da dies meine Windows festplatte ist . Könnte dies etwas damit zu tun haben?


Grüße ~neon
 
  • CMD Befehlsuche Beitrag #26
bummelbum

bummelbum

Bekanntes Mitglied
Dabei seit
18.04.2009
Beiträge
946
Reaktionspunkte
0
set /P muster="Suchmuster: *.jpg
du machst Anführungsstriche auf und vergisst sie wieder zuzumachen.
also:

set /P muster=*.jpg

"Suchmuster :" brauchst du ja nicht mehr mit auszugeben.

Edit:
dir D: (da dies meine Windows festplatte ist . Könnte dies etwas damit zu tun haben?
Nein, wenn du nun dir D: statt dir C: stehen hast nicht.
Allerdings durchsucht er dann auch nur die Festplatte D.
Einfach vorzustellen als dir D:\*.jpg \s \b

dir ist der Befehl zur Auflistung der Dateien, dank dir D:\ nur Dateien der Festplatte D: und zwar alle die sich *.jpg schimpfen (* steht für beliebig). Die Option \s fasst zusätzlich alle Unterverzeichnisse mit ein und \b listet die Dateien nach und nach auf so dass sie einzeln in den Temp Ordner kopiert werden.
 
Zuletzt bearbeitet:
  • CMD Befehlsuche Beitrag #27
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Es tut mir leid.
Wenn ichs eingebe habe ich .exe Dateien, .avi Dateien sonstige mit im Ordner.
Aber nicht nur die .jpg dateien dieser Festplatte. ich gebe also folgendes ein:

@echo off

if %1.==. goto ask
if %1.==copy. goto copy
set muster=%1
goto seek

:ask
set /P muster=*.jpg

:seek
dir D:\%muster% /s /b > "%TEMP%\sk.tmp"
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp"
set muster=
set answer=
goto ende

:copy
copy %2 "%USERPROFILE%\Desktop\Ordner"

:ende


Falls dies immernoch nicht richtig ist, bitte was amche ich falsch?
Ich verzweifle, aber danke für deine Geduld.


*neon
 
  • CMD Befehlsuche Beitrag #28
bummelbum

bummelbum

Bekanntes Mitglied
Dabei seit
18.04.2009
Beiträge
946
Reaktionspunkte
0





Funzt wumbaba :)
show.php
 
  • CMD Befehlsuche Beitrag #29
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
OK, eindeutig geht es nun! Ich habe vorher nicht in das "dir D:\%muster% /s /b > "%TEMP%\sk.tmp" jpg reingeschrieben, sondern es bei "muster" gelassen.
So nun danke ich dir hoffentlich zum letzten male für diesen Thema.
Ach, eine Frage hätte ich evtl noch. Wenn ich nun alle Bilddateien einfügen will, als suchmuster "*.jpg *.bmp *.etc" eingeben?

DANKE DANKE DANKE! Veranschaulichen hilft meist doch besser als "erklären" Haste auch wieder ws gelernt *haha* ;)


*neon
 
  • CMD Befehlsuche Beitrag #30
bummelbum

bummelbum

Bekanntes Mitglied
Dabei seit
18.04.2009
Beiträge
946
Reaktionspunkte
0
Ach, eine Frage hätte ich evtl noch. Wenn ich nun alle Bilddateien einfügen will, als suchmuster "*.jpg *.bmp *.etc" eingeben?
NEIN :fre:

dann würde dein Computer nach Dateien suchen die "*.jpg *.bmp *.etc" hießen, und welche Datei hat schon drei Endungen?

Wenn du nicht alles umstrukturieren willst machst du einfach eine Batch für jede Endung einzeln und machst eine vierte Batch in der du die einzelnen Batch nacheinander aufrufst,
bzw noch besser ist es, du kopierst den Quelltext der Batch datei dreimal hintereinander in eine batch datei mit jeweils einer anderen Endung.

Verusch es mal auf eigene Faust, Google ist dein Freund, und so schwer ist der ganze Batch krams nicht.

Du brauchst keine Syntax zu wissen, du musst nur wissen wo du die richtige Syntax findest.:idee:


Edit: Probier das mal, schmeckt gut :)
 
Zuletzt bearbeitet:
  • CMD Befehlsuche Beitrag #31
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Habs versucht und sofort geklappt.
Ich würde mich sehr gerne selber damit beschäftigen.
Ab in einem Monat habe ich auch zeit dafür.
Bin Student und arbeite nebenher ziemlich viel. Frezeit ist da meist schon an Freunde und Freundin vergeben.
Ich werde in den Semesterferien auf eigene Faust lernen.
Die ganzen sachen mit "dir. seek, tree, echo off, copy, move" kenne ich nun.
Die halbe Syntax dank vielem ausprobieren der Varianten welche hier zu finden sind auch schon ein wenig.

Danke für deine hilfe. Andere hätten schon längst die Geduld verloren *=)


*neon
 
  • CMD Befehlsuche Beitrag #32
bummelbum

bummelbum

Bekanntes Mitglied
Dabei seit
18.04.2009
Beiträge
946
Reaktionspunkte
0
Freut mich das es klappt, sobald man sich selber damit beschäftigt ist der Lernfaktor viel größer.

Nein von den anderen hätte keiner die Geduld verloren,
solange diskrete Fragen kommen, hilft man gerne.

Leuten, die keine eindeutigen Fragen stellen oder bei denen man das Gefühl hat man soll für sie arbeiten weil sie zufaul sind sich damit selber zu beschäftigen, hilft man halt eher ungern.

Vergeude allerdings nicht zuviel Zeit mit Batch, die Möglichkeiten sind dort sehr eingeschränkt.
Weiter kommst du wenn du dir eine Programmiersprache wie Java, C++, Delphi oder direkt C# (entstanden aus Java, C++ und PHP)
 
  • CMD Befehlsuche Beitrag #33
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Danke für den Tipp.
Im Grunde ging es mir nur darum alle Dateien von einem Typ in einer Ordner zu packen.
Wollte da nicht allzutief reinsteigen, jedoch das wichtigste lernen.
Ich dachte Batch bietet da gute Möglichkeiten schnell an die gewünschten Daten zu gelangen
bzw einen Überblick zu schaffen,(was hat man alles?).

Die Seite welche du mir zu Batch lernen geschickt hast, ist sehr informativ, und ich denke das wird noch ein wenig an Zeit mit sich tragen
dort erfolgreich selbstständig agieren zu können.
Aber learning by doing he?! ;)

Grade bin ich dabei den Befehl weiter zu ergänzen, ich bin auf der Suche nach einen Befehl der es möglich macht auch unsichtbare Dateien mit in den Ordner zu speichern.
Ich denke so lernt man am besten. Ergänzen und nachlesen.
Nur Google bietet da nicht allzuviele Information wie ich bislang in erfahrung bringen musste.
Desweiteren habe ich den Konflikt das wenn ich alle Bilder von zb "3 Festplatten" in einen Ordner kopieren will, so gibt es doch immerwieder Bilder mit den selben Namen.
Drum bin ich zusätzlich noch auf der Suche nach einen "alle dateien in diesen ordner umzunennenden" Befehl.

Ich glaube das Interesse an einer Programiersprache wächst desto mehr ich versuche mich näher mit dem System vertraut zu machen.
compiler und mingw habe ich jedenfalls schonmal im petto. Aber da braucht man ja Jahre. Mal sehn, vllt fange ich demnächst an :)


*neon
 
  • CMD Befehlsuche Beitrag #34
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Die verfügbaren Befehle in der Kommandozeile haben alle eine Hilfefunktion, entweder mit z.B. "help dir" oder mit nachgestelltem /?, also "dir /?". Der dir-Befehl z.B. hat die Option /ah mit der nur versteckte Dateien angezeigt, bzw. gelistet werden. Das kleine Skript oben verwendet den dir-Befehl zum Auflisten der Dateien, die einem bestimmten Muster entsprechen, und leitet dessen Ausgabe vom Bildschirm in eine Datei um, die in der Schleife dann abgearbeitet werden. Leider fällt mir gerade nichts ein, um den dir-Befehl zu veranlassen, normale und versteckte Dateien auszugeben, daher ein kleiner Umweg:
Code:
:seek
dir D:\%muster% /s /b > "%TEMP%\sk1.tmp"
dir D:\%muster% /s /b /ah > "%TEMP%\sk2.tmp"
copy "%TEMP%\sk1.tmp" + "%TEMP%\sk2.tmp" "%TEMP%\sk.tmp" /a

Hab das jetzt nicht genau in der Form getestet, aber müsste gehen. Natürlich kann man mit der Variante auch gleichzeitig verschiedene Muster suchen lassen.
Zur Erklärung: Der erste dir-Aufruf sucht Dateien, die nicht versteckt sind, der zweite Aufruf dagegen nur versteckte. Mittels copy-Befehl werden die beiden Dateien aneinandergehängt und in eine neue Datei geschrieben, die dann in der Schleife abgearbeitet wird.

Zur Umbenennung könnte man den ren-Befehl benutzen, um z.B. ein Zeichen vorne dranzuhängen:
ren *.txt _*
Das würde an alle Textdateien vorne einen Unterstrich dranhängen. Hinten dran geht vermutlich nicht so einfach, da der Unterstrich dann hinten an der Endung landen würde, also .txt_ anstatt hinten am Namen. Wenns aber nur ums Kopieren geht, könnte man das schon verwenden.
 
  • CMD Befehlsuche Beitrag #35
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Demnach also? :


@echo off

if %1.==copy. goto copy
goto seek

:seek
dir C:\*.jpg /s /b > "%TEMP%\sk1.tmp"
dir C:\*.jpg /s /b /ah > "%TEMP%\sk2.tmp"
copy "%TEMP%\sk1.tmp" + "%TEMP%\sk2.tmp" "%TEMP%\sk.tmp" /a

del "%TEMP%\sk.tmp"
set ansewer=
goto ende

:copy
copy %2 "%USERPROFILE%\Desktop\Ordner"

:ende


Wenn ja, das Fenster schließt sich direkt.


*neon
 
  • CMD Befehlsuche Beitrag #36
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Öhm, nö. ;) Einfach die eine dir-Zeile im funktionierenden Programm durch meine drei Zeilen ersetzen.
Hier fehlt die for-Schleife, die den Kern des Programms bildet.
Außerdem sollte man noch sk1.tmp und sk2.tmp mit del nach dem Muster von sk.tmp löschen; nur um das "sauber" zu machen.

PS: Tippfehler beim Programmieren sind tödlich.

PPS: Konsolenprogramme ruft man am besten in der Konsole (Eingabeaufforderung) auf. Dann bleibt das Fenster offen und man kann auch Parameter angeben. Alternativ kannst du nach dem :ende noch ein pause einfügen, dann bleibt das Fenster offen bis eine Taste gedrückt wird.
 
  • CMD Befehlsuche Beitrag #37
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Ok, nun habe ich es so versucht.

@echo off

if %1.==copy. goto copy
goto seek

:seek
dir C:\*.jpg /s /b > "%TEMP%\sk1.tmp"
dir C:\*.jpg /s /b /ah > "%TEMP%\sk2.tmp"
copy "%TEMP%\sk1.tmp" + "%TEMP%\sk2.tmp" "%TEMP%\sk.tmp" /a
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp" "%TEMP%\sk1.tmp" "%TEMP%\sk2.tmp"
set ansewer=
goto ende

:copy
copy %2 "%USERPROFILE%\Desktop\Ordner"

:ende


Er speichert nach wie vor nur die sichtbaren Dateien im Ordner (Ordner) ab.


*neon
 
  • CMD Befehlsuche Beitrag #38
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Gerade getestet; copy kopiert keine versteckten Dateien. Aber xcopy schon. :)
Code:
if %1.==copy. goto copy
goto seek

:seek
dir C:\*.jpg /s /b > "%TEMP%\sk1.tmp"
dir C:\*.jpg /s /b /ah > "%TEMP%\sk2.tmp"
copy "%TEMP%\sk1.tmp" + "%TEMP%\sk2.tmp" "%TEMP%\sk.tmp" /a
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp" "%TEMP%\sk1.tmp" "%TEMP%\sk2.tmp"

goto ende

:copy
xcopy %2 "%USERPROFILE%\Desktop\Ordner\" /h

:ende

Wichtig! Das Ziel muss für xcopy als Ordner ersichtlich sein, daher der \ am Ende!

Das @echo off hab ich mal entfernt. Es hilft beim Fehler suchen, wenn man die Fehlermeldungen auch sieht. ;)
 
  • CMD Befehlsuche Beitrag #39
N

neonlein

Bekanntes Mitglied
Dabei seit
06.06.2009
Beiträge
88
Reaktionspunkte
0
Ort
Aachen *Germany*
Ich weiß einfach nicht was ich immernoch falsch machen kann.

Habe nun *.jpg Dateien versteckt welche nicht in den Ordner kopiert werden.

Desweiteren fragt er mich ob ich Dateien überschreiben möchte, obwohl sich keine wiederholt. Hat das was mit echo off zu tun?


if %1.==copy. goto copy
goto seek

:seek
dir C:\*.jpg /s /b > "%TEMP%\sk1.tmp"
dir C:\*.jpg /s /b /ah > "%TEMP%\sk2.tmp"
copy "%TEMP%\sk1.tmp" + "%TEMP%\sk2.tmp" "%TEMP%\sk.tmp" /a
for /F "delims=*" %%f in (%TEMP%\sk.tmp) do call %0 copy "%%f"

del "%TEMP%\sk.tmp" "%TEMP%\sk1.tmp" "%TEMP%\sk2.tmp"

goto ende

:copy
xcopy %2 "%USERPROFILE%\Desktop\Ordner\" /h

:ende


*danke neon
 
  • CMD Befehlsuche Beitrag #40
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Existieren die Dateien viell. vom vorigen Durchlauf schon im Zielordner?
Nimm mal die Zeile mit dem del raus und öffne dann die sk.tmp in deinem TEMP-Ordner mit dem Editor. Dort stehen alle Dateien gelistet, die das Programm kopieren möchte. Guck mal nach, ob die nicht kopierten Dateien dort drin stehen oder nicht.
 
Thema:

CMD Befehlsuche

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben