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

Frage Entwicklung Batch & Shell

GELÖST

Move Befehl nicht in der Shell anzeigen!

Mitglied: peterpan33

peterpan33 (Level 1) - Jetzt verbinden

13.05.2010 um 02:08 Uhr, 4192 Aufrufe, 10 Kommentare

Die Aussage: "Datei(en) verschoben." soll unterbunden werden

Hallo,
ich würde es gerne unerbinden, dass der Move Befehl anzeigt was er macht.
Also:
MOVE %CD%\*.JPG "%date%_ORDNER\%date%-%time:~0,2%-%time:~3,2%-%time:~6,2%.JPG"

zeigt z.B. an: "1 Datei(en) verschoben."

Gibt es eine Möglichkeit, wie ich die Anzeige in der Shell für diese Aussage unterbinden kann?
noch eine kleine Zusatzfrage, gibt es Proleme unter WIN XP mit der Variablen %CD%, wenn ich den Move Befehl mit einer For Schleife nutze:

FOR %%I IN (c:\test\*.JPG) DO MOVE %%I %CD%
rem soll alle JPG aus C:\Test in den aktuellen Ordner schieben

Vielen Dank für Hilfe
und besten Gruß
Mitglied: dog
13.05.2010 um 03:20 Uhr
Gibt es eine Möglichkeit, wie ich die Anzeige in der Shell für diese Aussage unterbinden kann?

http://www.microsoft.com/resources/documentation/windows/xp/all/proddoc ...
http://en.wikipedia.org/wiki//dev/null
Bitte warten ..
Mitglied: LotPings
13.05.2010 um 10:51 Uhr
Willkommen im Forum PeterPan33,

dog hat natürlich Recht, wobei auch die deutsceh Wikipedia einen /dev/null Eintrag hat.

Bitte formatiere deinen Code zur besseren Les-/Referenzier-barkeit unbedingt mit den dafür vorgesehenen Codetags in der Formatierungshilfe

Zur zweiten Frage solltest du, wenn die Möglichkeit von Leer-/Sonderzeichen im Pfad- oder Dateinamen besteht, die Variablen in Anführungszeichen setzen.
Als Ziel für den aktuellen Ordner kannst du auch einfach gar nichts oder einen Punkt nehmen.
FOR %%I IN (c:\test\*.JPG) DO MOVE "%%~fI" "%CD%" >NUL 
Wobei du das Problem bekommst das u.Umständen die Batchdatei anhält ohne das du erkennen kannst warum.
Wenn eine Datei gleichen Namens bereits existiert, fragt move nach, aber du kannst die ins Schwarze Loch >NUL geschickte Frage nicht sehen.
Wenn du daher die /y Option von Move benutzt, musst du entweder sicher sein das überschrieben werden soll oder vorher selber nachprüfen.
FOR %%I IN (c:\test\*.JPG) DO If Not exist "%%~nxI" MOVE "%%~fI" . >NUL 
Gruß
LotPings
Bitte warten ..
Mitglied: bastla
13.05.2010 um 15:14 Uhr
Hallo LotPings!

Nur als Anmerkung:
"copy" und "move" werden in einem Batch defaultmäßig mit einem "/y" ausgeführt ...

Grüße
bastla
Bitte warten ..
Mitglied: LotPings
13.05.2010 um 16:10 Uhr
Zitat von bastla:
Nur als Anmerkung:
"copy" und "move" werden in einem Batch defaultmäßig mit einem "/y" ausgeführt ...
Hast ja Recht, muss Alzheimer sein

wenn er nicht überschreiben will, ist das Abprüfen aber schon wichtig.

Gruß
LotPings
Bitte warten ..
Mitglied: bastla
13.05.2010 um 16:20 Uhr
@LotPings
wenn er nicht überschreiben will, ist das Abprüfen aber schon wichtig.
Keine Frage - und vor allem wenn es um das Zusammenführen von Dateien in einem Ordner ("flattening") geht, muss darauf geachtet werden, ob eine gleichnamige Datei im Zielordner bereits existiert ...

Grüße
bastla
Bitte warten ..
Mitglied: peterpan33
13.05.2010 um 22:32 Uhr
vielen Dank der Mühe! Bin schon über Dogs hinweis zu Ziel gelangt und wenn die Datei schon vorhanden ist, wird sie einfach überschrieben. Das stellt kein Problem dar. Das mit den Anführungszeichen ist ein guter Tip!!!
mir ist noch etwas unklar:

Als Ziel für den aktuellen Ordner kannst du auch einfach gar nichts oder einen Punkt nehmen.
> FOR %%I IN (c:\test\*.JPG) DO MOVE "%%~fI" "%CD%" >NUL  
> 

Also wieso schreibst du "%%~fI" anstatt "%%I"?
Könnte mein Quelltest dann auch so aussehen:
FOR %%I IN (c:\test\*.JPG) DO MOVE >NUL
Lieben Gruß und vielen Dank
Bitte warten ..
Mitglied: LotPings
14.05.2010 um 10:27 Uhr
Zitat von peterpan33:
Also wieso schreibst du "%%~fI" anstatt "%%I"?
Das ist hier wahrscheinöich nicht nötig, die Tilde+f ~f erzwingt die Angabe mit vollem Pfad.

Könnte mein Quelltest dann auch so aussehen:
FOR %%I IN (c:\test\*.JPG) DO MOVE >NUL
Nein, die Quelle musst du schon angeben.
FOR %%I IN (c:\test\*.JPG) DO MOVE "%%I" . >NUL
Gruß
LotPings
Bitte warten ..
Mitglied: peterpan33
16.05.2010 um 22:59 Uhr
Hallo,
dake für die Hife, aber ich hab noch eine Frage. Ich würde gerne eine Variabel für das aktuelle Verzeichnis in die For Schleife einbinden. Das habe ich so geschafft:

FOR %%I IN ('DIR *.JPG /b') DO MOVE "%%I" . >NUL
Soweit so gut. Nun will ich auf ein Unterverzeichnis im aktuellen Ordner zugreifen. Also "%CD"/Ordner/*JPG.

FOR %%I IN ("%CD"/Ordner/*JPG) DO MOVE "%%I" . >NUL
Dies funktiert leider nicht !!!!

Leider funktioniert dies nicht in meiner For Schleife. Was mach ich falsch?
Wo kann ich nachlesen, was die Syntax in einer For schleife bedeuten also in meinem Fall /b?
Danke für die Mühe
Besten Gruß
Bitte warten ..
Mitglied: LotPings
17.05.2010 um 00:16 Uhr
Zitat von peterpan33:
Hallo,
dake für die Hife, aber ich hab noch eine Frage. Ich würde gerne eine Variabel für das aktuelle Verzeichnis in die
For Schleife einbinden. Das habe ich so geschafft:

FOR %%I IN ('DIR *.JPG /b') DO MOVE "%%I" . >NUL
Soweit so gut. Nun will ich auf ein Unterverzeichnis im aktuellen Ordner zugreifen. Also "%CD"/Ordner/*JPG.
Soweit so schlecht der Befehl kann nicht funktionieren, ohne /f nach dem for,
damit auch Pfad-/Dateinamen mit Leer-/Sonderzeichen verarbeitet werden können fehlt auch noch "Delims=" oder "Tokens=*"

FOR %%I IN ("%CD"/Ordner/*JPG) DO MOVE "%%I" . >NUL

Dies funktiert leider nicht !!!!
Leider funktioniert dies nicht in meiner For Schleife. Was mach ich falsch?
Alles
  • Du vermischst die unterschiedlichen Formen des For-Befehls
  • Die Variable CD braucht vorne und hinten ein %-Zeichen
  • Bei der einfachen Form von For
    • wird der Inhalt mit Anführungszeichen einfach ausgegeben
    • kannst du AFAIK kein Slash / benutzen.

Für die folgenden Beispiele gebe ich nur mit Echo aus ohne >NUL

Dies sollte funktionieren (Wobei "%%I" relative Dateinamen ausgibt)
FOR %%I IN (.\Ordner\*JPG) DO Echo MOVE "%%I" . 
absolute Referenzen mit
FOR %%I IN (.\Ordner\*JPG) DO Echo MOVE "%%~fI" .
oder auch dies
FOR /f "delims=" %%I IN ('Dir /B /S .\Ordner\*JPG') DO Echo MOVE "%%I" . 
Was nicht funktioniert, ist die Verwendung von Dir /B ohne /S mit relativen Angaben -> in der Ausgabe fehlt dann die Ebene \Ordner\.

Noch eine Variante
For /R ".\Ordner" %%I in (*.jpg) do Echo MOVE "%%I" . 
Wo kann ich nachlesen, was die Syntax in einer For schleife bedeuten also in meinem Fall /b?
Die eingebaute Hilfe von For mit
CHCP 1252 
For /? >For-Help.txt
in eine Textdatei schreiben und ausdrucken oder zumindest mehrfach lesen.

Ist doch etwas länger geworden

Gruß
LotPings
Bitte warten ..
Mitglied: peterpan33
17.05.2010 um 01:47 Uhr
ohh man,
super Sache vielen Dank. Man kommt sich schon ein wenig als blödi vor. Das beinhaltet aber wohl jeder Lernprozess... Werde gleich versuchen alle Tips umzusetzen.
Vielen Dank und besten Gruß
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
VBA Shell Befehl asynchron
gelöst Frage von 125218Microsoft Office1 Kommentar

Guten Abend, ich bin im Moment dran ein Makro zu schreiben, dass eine Batch-Datei ausführen soll. Diese Batch-Datei durchsucht ...

VB for Applications
Shell-CMD Befehl Ausführen
gelöst Frage von Timo0oVB for Applications2 Kommentare

Nochmal ich^^ Ich möchte eine Aufgabe mit meinem VB Programm erstellen. Jedoch komme ich nicht weiter. Folgenden Code habe ...

Batch & Shell
SQL Befehle über Linux-Shell
Frage von newit1Batch & Shell4 Kommentare

Hallo Ich will mehrere SQL Befehle über eine Shell ablaufen lassen. Wenn ich die Shell ausführe Öffnet sich nur ...

Exchange Server
Exchange 2010 Frage (Befehle Shell)
gelöst Frage von glandy5Exchange Server5 Kommentare

Guten Tag, wir haben jetzt von Exchange 2003 auf Exchange 2010 migriert. Leider gibt es ja den Postfachbereinigungsvorgang unter ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...