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

Dateinamen mit Leerzeichen in Variable

Frage Entwicklung Batch & Shell

Mitglied: arnito

arnito (Level 1) - Jetzt verbinden

09.01.2007, aktualisiert 22:36 Uhr, 6087 Aufrufe, 3 Kommentare

Hallo,
nachdem ich kürzlich ein Photoshop Droplet in ein batchfile eingebunden habe um einen überwachten Ordner zum Konvertieren von Bilddateien zu haben möchte ich das nun mit imagemagick (convert) realisieren.


rem @echo off
cls
cd c:\test

FOR %%a IN (c:\test\unprocessed\*.tif) DO convert %%a "c:\test\processed\%%~na.jpg" & del %%a

Das funktioniert auch schon sehr gut, allerdings gibt es Probleme mit Dateien die Leerzeichen enthalten, die werden als zwei einzelne angesehen und convert findet sie nicht. Ich hab schon mit Anführungszeichen an verschiedensten Stellen probiert aber komme da nicht weiter.
Eine weitere Frage ist folgende, ich löse das script periodisch aus, wenn das erste script noch läuft und dann die nächste Instanz gestartet wird werden zwar alle Bilder konvertiert, aber es hagelt Fehlermeldungen, (Datei entweder schon vom anderen scriptlauf verarbeitet und gelöscht wird nicht daher gefunden, oder ist gerade geöffnet).
Gibt es eine Möglichkeit das Script nur dann zu starten wenn keine andere Instanz läuft oder wie kann man diesen Konflikt lösen?

Vielen Dank für Eure Ideen

Arne
Mitglied: maneich
09.01.2007 um 19:34 Uhr
Hallo,

normalerweise sollte es genügen, wenn Du %%a hinter Covert in Hochkomma setzt.
Sollte das nicht gehen, in einer Unterroutine (call) die Tif-Datei von dem Dateipfad trennen und mit Hochkomma dann wieder anzufügen und danach Covert starten.

Was Deine zweite Frage anbelangt:

Sind es zwei Batches womit Du Probleme bekommst, rufe diese mit "call" auf; also
call Batch1.bat
call Batch2.bat
Damit wird nur dann zur weiten Batch gewechselt wenn die erste abgearbeitet ist.

Aber Vorsicht, wird ein Programm in der ersten Batch gestartet, wird nicht gewartet bis das Programm abgearbeitet ist, sondern direkt nach einleiten des Startvorgangs zur nächten Zeile gesprungen. Hier kann man sich helfen mit
start /w programm_x.
Die Batch macht erst dann weiter, wenn dieses Programm beendet ist.

MfG maneich
Bitte warten ..
Mitglied: miniversum
09.01.2007 um 20:27 Uhr
Versuchs mal so:

rem @echo off
If exist "%temp%\Flag.file" goto :ende
echo. > %temp%\Flag.file

cls
cd c:\test

FOR %%a IN (c:\test\unprocessed\*.tif) DO convert "%%a" "c:\test\processed\%%~na.jpg" & del "%%a"

del "%temp%\Flag.file"
:ende

Hier wird zu Begin im temponären Ordner eine Datei "Flag.file" erzeugt und am Ende der Batch wieder gelöscht. Zuvor wird geprüft ob die Datei schon existiert sollte dies der fall sein (Verarbeitung läuft dann ja noch) einfach ans ende gesprungen. Alternativ kannst du wenn es dir leiber ist auch vor die If abfage springen, dann würde die Batch warten bis die vorherige Verarbeitung beendet ist.

miniversum
Bitte warten ..
Mitglied: arnito
09.01.2007 um 22:36 Uhr
funktioniert prächtig, vielen Dank!

Arne
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch Variable setzten mit Leerzeichen (3)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Teil eines Strings als Variable setzen (2)

Frage von tHe-jAy zum Thema Batch & Shell ...

Batch & Shell
Ordnernamen aus Dateinamen erstellen (1)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(12)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...