Move Befehl nicht in der Shell anzeigen!
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ß
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ß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142754
Url: https://administrator.de/contentid/142754
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
10 Kommentare
Neuester Kommentar
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
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 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.
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.
Gruß
LotPings
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 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
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
Zitat von @bastla:
Nur als Anmerkung:
"
Hast ja Recht, muss Alzheimer sein Nur als Anmerkung:
"
copy
" und "move
" werden in einem Batch defaultmäßig mit einem "/y" ausgeführt ...wenn er nicht überschreiben will, ist das Abprüfen aber schon wichtig.
Gruß
LotPings
Das ist hier wahrscheinöich nicht nötig, die Tilde+f
Gruß
LotPings
~f
erzwingt die Angabe mit vollem Pfad.Könnte mein Quelltest dann auch so aussehen:
Nein, die Quelle musst du schon angeben.FOR %%I IN (c:\test\*.JPG) DO MOVE >NUL
FOR %%I IN (c:\test\*.JPG) DO MOVE "%%I" . >NUL
Gruß
LotPings
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:
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,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
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
Leider funktioniert dies nicht in meiner For Schleife. Was mach ich falsch?
- 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" .
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" .
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 mitCHCP 1252
For /? >For-Help.txt
Ist doch etwas länger geworden
Gruß
LotPings