Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 6117 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 erzeugen mit Leerzeichen und Klammern (11)

Frage von hipfzwirgel zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch-Datei einen variablen Teil eines Dateinamens auslesen (5)

Frage von dh0815 zum Thema Batch & Shell ...

Batch & Shell
Vergleich einer Zeichenfolge in zwei Dateinamen (3)

Frage von hongziehong zum Thema Batch & Shell ...

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

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

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

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

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...