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

Dateien mit gleichem Namen und unterschiedlichen Endungen ausschließen

Frage Entwicklung Batch & Shell

Mitglied: konrad123

konrad123 (Level 1) - Jetzt verbinden

12.06.2009, aktualisiert 10:51 Uhr, 5102 Aufrufe, 8 Kommentare

Hallo Ich habe hier auf der Seite eine Script entdeckt das ich gerne umschreiben wollte. Ich bräuchte dabei jedoch Hilfe.
http://www.administrator.de/index.php?content=53970

Ich habe einen Ordner mit Filmaaufnahmen im .ts Format. Nun bräuchte ich ein Script das kontrolliert ob es zu den .ts Dateien gleichnamige .txt Dateien gibt.
Falls ja soll nichts gemacht werden und falls nein sollte ein externes Programm ( Comskip ) gestartet werden.
Ich denke das Script von http://www.administrator.de/index.php?content=53970 ist genau das was ich suche nur ist mir nicht klar wie ich die Ausgabe so abändern kann das er mir immer die .ts Dateien OHNE .txt ausgibt und dann weiterverarbeiteten.
Könnte jemand von euch mir da bitte Hilfestellung geben? Danke im vorraus.
Mitglied: 60730
12.06.2009 um 13:45 Uhr
Servus,

so aus dem Bauch und der Hüfte geschossen, sollte dir die Zeile weiterhelfen...

01.
for %%i in (Ordner mit Filmaaufnahmen\*.ts) do if not exist "%%~ni.txt" Comskip "Ordner mit Filmaaufnahmen\%%i"
gruß

edit ich hab noch ein % gekauft ... /edit
Bitte warten ..
Mitglied: konrad123
12.06.2009 um 15:30 Uhr
Hallo,

danke für die schnelle Antwort. Also ich habs mit dieser Zeile versucht und habe eine .bat Datei erstellt.

for %%i in (e:\*.ts) do if not exist "%~ni.txt" C:\Comskip\comskiperik\comskip.exe "e:\%%i"

Leider bekomme ich dann immer die Meldung:


C:\Dokumente und Einstellungen\krutowski\Desktop>aufnahmen.bat
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~ni.txt" C:\Comskip\comskiperik\comskip.exe "e:\%%i"

Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig
sind.
"aufnahmen.bat" ist syntaktisch an dieser Stelle nicht verarbeitbar.

C:\Dokumente und Einstellungen\krutowski\Desktop>for %i in (e:\*.ts) do if not e
xist ""%~ni.txt" C:\Comskip\comskiperik\comskip.exe "e:\%%i"
C:\Dokumente und Einstellungen\krutowski\Desktop>


Woran könnte das liegen ?
Danke
Bitte warten ..
Mitglied: Biber
12.06.2009 um 16:07 Uhr
Moin konrad123,

Woran könnte das liegen ?
Was sagte denn die angegebene Quelle zur Problembehebung "CALL /?" oder "FOR /?" zu Dir?

Oder hast Du gar nicht nachgeschaut?
Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
statt %Variable an. Beachten Sie die Groß-/Kleinschreibung bei Variablen-
namen, %i und %I sind nicht identisch.

Übersetzt: nimm "%%~ni.txt" statt "%~ni.txt" .


Grüße
Biber
Bitte warten ..
Mitglied: konrad123
12.06.2009 um 16:49 Uhr
Hallo,
ich hab nachgesehen aber ich kenn mich in der Sache nicht so aus und hab das ganze irgendwie nicht begriffen.
Kann ich das Script so ändern das damit auch die Unterordner durchsucht werden ? Meine Aufnahmen liegen alle in Unterordner.
Ich hab versucht das hier dir e:\*.ts /s /b /a-d in der Klammer einzufügen doch das funktioniert wohl nicht.
Danke im vorraus.
Bitte warten ..
Mitglied: Biber
12.06.2009 um 17:00 Uhr
Moin konrad123,

die ursprüngliche Ansage war doch "Ich habe einen Ordner mit Filmaufnahmen"..

Klappt denn die von mir tippfehlerberichtigte T-Mo-Lösung jetzt?


Wenn ja, dann können wir ja verfeinern... vorher nicht.
Zum Verfeinern sollte allerdings eine Änderung von

Jetzt: ... if not exist "%%~ni.txt" Comskip "Ordner mit Filmaaufnahmen\%%i" in ein..
--> Phase 2: ... if not exist "%%~dpni.txt" Comskip "%%~fi"
genügen.

Grüße
Biber
Bitte warten ..
Mitglied: konrad123
12.06.2009 um 18:15 Uhr
Hallo Biber,

danke für deine Hilfe. Ja das war mein Fehler es ist ein Ordner und die Filmaufnahmen sind teilweise in Unterordner, daran hab ich nicht gedacht.
Das Script funktioniert nach der Korrektur super.
Meinst du so:
for %%i in (F:\aufnahmen\card1\*.ts) do if not exist "%%~ni.txt" "D:\comskip\PostProcessing.bat" "F:\aufnahmen\card1\%%i"
in
for %%i in (F:\aufnahmen\card1\*.ts) do if not exist "%%~dpni.txt" "D:\comskip\PostProcessing.bat" "%%~fi"

Grüße
Konrad
Bitte warten ..
Mitglied: Biber
12.06.2009 um 20:10 Uhr
Ja nee, konrad123,

Meinst du so:
Öhmm... nicht wortwörtlich... im Prinzip ja...

Nochmal ein Versuch...

Das Fragment..
for %%i in (F:\aufnahmen\card1\*.ts) do if not exist "%%~dpni.txt"
.... ist richtig, aber bezieht sich wegen des "FOR %%i in (EINVERZEICHNIS\*.ts)" natürlich auf genau ein Verzeichnis.

Du brauchst doch aber etwas für die Abarbeitung von einem Verzeichnis und dessen Unterverzeichnissen.
Dazu wiederum kannst Du
  • entweder eine [[FOR /F]] -Anweisung bezogen auf ein 'Dir F:\aufnahmen\card1\*.ts /b /s /a-d' als Inhalt der Klammer benutzen
  • oder aber eine [[ FOR /R "F:\aufnahmen\card1\" %%i in (*.ts) DO whatever]]

Bitte schau noch mal kurz in die FOR /? -Hilfe und teste die beiden Varianten a) FOR/F+Dir-Output b) FOR /R rekursives Durchrödeln an.

Sonst reden wir aneinander vorbei und Du bekommst keinen Batch, den Du selber pflegen/verfeinern kannst.

Grüße
Biber
Bitte warten ..
Mitglied: konrad123
13.06.2009 um 10:34 Uhr
Hallo Biber,

danke für deine Hilfe. Es hat mit beiden Varianten funktioniert. Ich lass jetzt mal durchlaufen und seh dann ja ob alles abgearbeitet wurde.
Vielen Dank du hast mir sehr geholfen.

Gruß Konrad
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...