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

Problem beim verschieben

Frage Entwicklung

Mitglied: mocca-kamil

mocca-kamil (Level 1) - Jetzt verbinden

17.09.2009, aktualisiert 12:10 Uhr, 3719 Aufrufe, 9 Kommentare

Ich will dateien mit einer bestimmten Endung in einen Unterordner verschieben.

Hi Leute,

ich hab folgendes Problem.

Mit einem Befehl will ich ein Programm ausführen an den pdf-dateien im Ordner.
Das klappt auch und ist super dupi.
Allerdings will ich anschließend die Dateien in einen "\temp" unterordner verschieben.

Ich hab es versucht in Anlehung an diese Frage zu erstellen:
Batch -Dateien verschieben, Ordner löschen
allerdings klappt es bei mir nicht


Meine Zeile wäre folgende:

for %i in (\*_stamped.pdf) do @Move "%i\*_stamped.pdf" &rd "%i\temp"


Da ich auch ein Anfänger in Sachen Batch bin hab ich zudem eh noch paar Fragen.
nach move kommt %i was ja schön und gut ist und danach kommt
nach dem "&rd" nochmals ein %i weshalb den das?
Ich weiss...bestimmt eine Mega anfängerfrage aber ich hoffe doch ich krieg sie beantwortet

Schönen Tag noch und ich hoffe auf eine baldige Antwort, ich verzweifel hier fast...
Mitglied: Biber
17.09.2009 um 12:07 Uhr
Moin mocca-kamil,

willkommen im Forum.

Um dich mit den verschiedenen FOR-Varianten vertraut zu machen ist es das Sinnvollste, du spielst das ganze vorher am CMD-Prompt durch und ersetzt dabei den eigentlich auszuführenden Befehl (in deinem Fall "move") durch ein "@echo auszuführenderBefehl".

Öffne also ein CMD-Fenster und spiel deinen Befehl
01.
for %i in (\*_stamped.pdf) do @echo move "%i\*_stamped.pdf" ^&rd "%i\temp"
...am CMD-Prompt durch.
Dann siehst Du, an welcher Stelle das %i durch was ersetzt wird.
[Anmerkung: das "&" habe ich als "^&" maskiert, damit es auch nur angezeigt wird.]

Stöbere nebenbei in der Hilfe zu FOR (For/?).

Wenn denn dann die ersten Aha-Effekte da waren, dann poste die Rest-Fragen und wir klären den Rest.

Solange Du gar kein Verständnis dafür hast, was da passiert, solange hat es wenig Zweck, Dir eine funktionierende Zeile zu posten - das kanst Du dann niemals warten und pflegen.

Grüße
Biber
Bitte warten ..
Mitglied: mocca-kamil
17.09.2009 um 13:26 Uhr
Mahlzeit Biber,


vielen Dank für die zügige Antwort!!

Ich hab jetzt allerdings folgendes Problem.
Wenn ich jetzt eintippe:
for %i in (\*_stamped.pdf) do @echo move "%~i*_stamped.pdf" &rd "%~pitemp"

erhalte ich "move.... " soweit...passt es!

wenn ich allerdings das @echo weglasse erhalte ich folgende Fehlermeldung:
"Dateiname exisitert bereits, oder die Datei konnte nicht gefunden werden"

Ich bin schier am verzeifeln daran. Was hab ich den jetzt daran falsch gemacht?
Wieso klappt es mit @echo?

Kann mir da jemand helfen`?
Bitte warten ..
Mitglied: Biber
17.09.2009 um 13:47 Uhr
Moin mocca-kamil,


Wenn ich es richtig sehe, dann würdest du bei einer gefundenen Datei \xy_stamped.pdf ein 'move "\xy_stamped.pdf*stamped.pdf' erzeugen.

Und was Du brauchst, ist doch nur ein 'move "\xy_stamped.pdf" ' --> also ein 'move "%~i" <nachZiel>'.
Und lass erstmal dieses "rd whatever" weg. Da sind wir noch nicht.

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
18.09.2009 um 05:37 Uhr
moin mocca-kamil,
@Biber
ja verkorkste dateinamen sind schuld und das fehlende Ziel für den MOVE

findet der MOVE etwa das Übergeordnete Verzeichnis nicht?....In welchen Verzeichnis bist Du im CMD

for %i in (\*_stamped.pdf) do @Move "%i\*_stamped.pdf" &rd "%i\temp"
so wie ich es verstanden habe willst Du die *_stamped .pdf aus dem Übergeordneten Ordner in den Aktuellen holen..... laut Befehl...
Bist Du also schon im temp drin? ... auf der CMD
Allerdings will ich anschließend die Dateien in einen "\temp" unterordner verschieben.
hier schreibst Du das Du die files reinschieben möchtetst also würdest Du Dich hier wiederum nicht im nicht im temp befinden.
dazu brauchst Du doch aber kein RD ...wenn Du diese files da reinschieben möchtest. RD löscht das Verzeichnis...

wenn Du im temp drin bist - dann mach mal so.. vllt geht das obwohl es eigentlich kürzer auch gehen müsste.

01.
for %i in (\*_stamped.pdf) do @move "%~fi" "%~dpitemp\%~nxi"
Gruß Phil
Bitte warten ..
Mitglied: mocca-kamil
21.09.2009 um 12:08 Uhr
Hallöle Phil,

ich befinde mich in dem jeweiligen Ordner und will die Dateien in den Unterordner schieben.
Der Befehl ist soweit super und klappt aber trotzdem vielen Dank.

Habe allerdings jetzt ein anderes Problem!

Ich lass ja ein Programm über die PDF-Dateien laufen und bisher hat es immer gut geklappt wenn ich es getestet habe mit 5-10 PDFs.
Allerdings wenn ich jetzt 100 oder mehr habe läuft das Programm über alle PDFs mehrmals drüber wie kann ich den den Befehl

for %i in (*.pdf) do pdstamp stamp.txt %i %~ni_stamped.pdf

so umschreiben das er nur jeweils einmal pro pdf läuft. (einmal über die .pdf und es wird eine mit dem ende _stamped.pdf erzeugt).
Kann mir da jemand helfen?

Grüßle Kamil
Bitte warten ..
Mitglied: pieh-ejdsch
21.09.2009 um 13:03 Uhr
normal durchläuft die Schleife ja nur einmal alle Dateien mit der Extension .pdf wieso dann mehrere Durchläufe, es sei denn die dateien sind noch nicht verschoben gewesen wenn Du die zeile nochmals eingibst.

for %i in (*.pdf) do pdstamp stamp.txt %i %~ni_stamped.pdf&&move %~ni_stamped.pdf temp
Bitte warten ..
Mitglied: Biber
21.09.2009 um 13:06 Uhr
Moin Kamil,

das Problem kannst Du dadurch umgehen, dass Du die anfänglich vorhandenene DIR-Liste *.pdf in eine Textdatei schreibst und dann diese Textdatei mit der FOR-Anweisung durchnudelst.

Beispiel (am CMDprompt):
01.
Dir /b [D:\einVerzeichnis\]*.pdf |findstr /v /i "_stamped.pdf">%temp%\ungestamptePDFs.txt 
02.
FOR /F "delims=" %i in (%temp%\ungestamptePDFs.txt) do ....[wie bisher]
Die zusätzliche FindStr-Einschränkung ist optional... hilft nur dagegen, dass aus einer bereits liegengebliebenen *.pdf-Datei eine xy_stamped_stamped_stamped.pdf wird.

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
21.09.2009 um 13:13 Uhr
@ Biber
ich denke die forschleife durchläuft das aktuelle Verzeichnis einmal und gibt das ergebnis dann nacheinander aus. Ich habs grad probiert am promt mit

for %i in (*.txt) do @echo %i>"z%i"

es wird jede Textdatei nur einmal mit dem Text des Namens der Textdatei als zname.txt gespeichert...

wenn es anders sein würde hätte ich ja eine endlosschleife..

also brauchst Du auch keine Speicherung in eine txt
[edit]
achso für die liegengebliebenen gestampten... aber da könntest Du das finstr doch gleich in die Schleife einsetzen...
da ja die datei eh nur temporär gebraucht werden würde
[/edit]



Gruß Phil
Bitte warten ..
Mitglied: mocca-kamil
21.09.2009 um 13:20 Uhr
man o man... ihr jungs seit echt super!
Problem ist gelöst, vielen Dank!!


Grüßle mocca
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...

Windows Netzwerk
gelöst Problem mit PSexec64 von Sysinternals (8)

Frage von MaxMoritz6 zum Thema Windows Netzwerk ...

Windows Server
gelöst Problem nach DC-Installation unter Server 2012 R2 (9)

Frage von manuel1985 zum Thema Windows Server ...

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

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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