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, 4171 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
Batch & Shell
gelöst BATCH Zieldatei nach Shell-Befehl leer? (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
Drucker über Shell-Batch installieren (2)

Frage von Ray00731 zum Thema Batch & Shell ...

Windows 7
Link auf Desktop um CMD Befehl auszuführen (7)

Frage von XPFanUwe zum Thema Windows 7 ...

Batch & Shell
gelöst Batch-Befehl oder Windows-Freeware-Tool gesucht zum Wandeln von ASCII in ANSI (8)

Frage von Sinzal zum Thema Batch & Shell ...

Neue Wissensbeiträge
Rechtliche Fragen

Heiseshow, live ab 12 Uhr: Steht die Vorratsdatenspeicherung vor dem Aus?

Tipp von sabines zum Thema Rechtliche Fragen ...

Outlook & Mail

Outlook Probleme nach Juni Updates - KB3203467 ist Schuld

(1)

Information von Deepsys zum Thema Outlook & Mail ...

Microsoft Office

Windows 7, Office 2016 RTM und Updates ohne WSUS

Tipp von chgorges zum Thema Microsoft Office ...

E-Mail

Thunderbird 52 hat Druckprobleme

(3)

Tipp von magicteddy zum Thema E-Mail ...

Heiß diskutierte Inhalte
Server-Hardware
Einem Stromausfall entgegen wirken (22)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

DSL, VDSL
gelöst Ständige Störungen - Internet (12)

Frage von gamerff zum Thema DSL, VDSL ...