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

Move Befehl nicht in der Shell anzeigen!

Frage Entwicklung Batch & Shell

Mitglied: peterpan33

peterpan33 (Level 1) - Jetzt verbinden

13.05.2010 um 02:08 Uhr, 4142 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
Outlook 2010 Userprofile Foto anzeigen lassen (2)

Frage von staybb zum Thema Outlook & Mail ...

Windows 7
Kopierte Dateien im Hintergrund anzeigen (1)

Frage von MichiBLNN zum Thema Windows 7 ...

Batch & Shell
gelöst PowerShell Script Move-Item nach x Tagen (5)

Frage von lupolo zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...