Portal > Foren > Datenbanken, Server, Betriebssysteme und sonstige Programmiersprachen > Sonstige Programmiersprachen > Befehl für die Windows-Eingabeaufforderung generieren und dann ausführen
Antwort
 
Themen-Optionen
Alt 18.05.2008, 11:12 Nach oben    #1
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard Befehl für die Windows-Eingabeaufforderung generieren und dann ausführen

Ich habe folgende Situation.
Ich habe in einem Verzeichnis eine Reihe von selbst aufgenommenen Dateien im wav-Format, die ich mehr oder minder automatisiert zu mp3-Dateien konvertieren will.

Nun habe ich dafür ein entsprechendes Programm gefunden, was sich aus meiner Sicht dafür hervoragend eignet, weil es per 'DOS'-Befehl gestartet werden kann.

Nun bedarf dieses Programm aber ein paar Parameter, die bei jedem Aufruf ein wenig anders sind.

Nun stellt sich für mich die Frage, ob ich dafür ein C++Programm schreibe, dass die Werte annimmt und dann den 'DOS'-Befehl absetzt, oder ob das ggf. alles in einer bat-Datei geht?



Was ich halt überhaupt nicht weiß, wie ich Datein eingeben kann - bei der bat-Version.
Bei der C++Version weiß ich nicht, wie ich aus dem Programm heraus den Befehl absetzen kann.


Die Frage ist also - welcher Weg wäre cleverer? Beide haben für mich in der Realisierung einen Haken. Schöner fänd ich die bat-Version, weil sie auch ohne Compiler schnell mal angepasst ist.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 12:52 Nach oben    #2
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 240
Standard

Die Frage ist, was sind das für Parameter? Was ist das für ein Programm?

Ein einfaches Batch-Program, welches alles Dateien mit wav-Endung in mp3 umbenennt wäre folgendes. Das das Schwachsinn ist, ist klar, dient auch nur der Verdeutlichung.
Code:
FOR %I IN (*.wav) DO REN "%I", "%~nI.mp3"
bzw. für in einer Batch-Datei
Code:
FOR %%I IN (*.wav) DO REN "%%I", "%%~nI.mp3"
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 12:59 Nach oben    #3
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

Das Programm, dass für die Konvertierung zuständig ist heit lame.
Aufgreufen wird es durch:
Code:
lame.exe -h name.wav name.mp3
Dazu kommen noch ein paar optionale Parameter, die für die id3-tags zuständig sind; die möchte ich auch nutzen.

Der Name der Datei ist in meinem Falle datumsabhängig. Nicht vom aktuellen Datum, sondern vom Datum der Aufname der Datei.

Format: YYMMDD.wav

Ich möchte also zB das Datum eingeben (in das Programm/die batch-Datei) und zwar Tag, Monat und Jahr getrennt und dann den etwas längeren Befehl zusammensetzen.

Als optionalen Parameter nutze ich dann zB:
--tt "Aufnahme vom 24.02.2008"
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 13:05 Nach oben    #4
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 240
Standard

Also willst du nicht alle Dateien konvertieren, sondern immer nur eine pro Aufruf des Programms?

EDIT: Gib einfach mal ein Beispielaufruf, den du machen würdest, mit einem fixen Dateinamen.
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL



Geändert von Artemis (18.05.2008 um 13:08 Uhr).
Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 14:22 Nach oben    #5
Sven Schmalle
 
Benutzerbild von Sclot
 
Registriert seit: 18.08.2005
Ort: Bremen
Beiträge: 149
Standard

btw...
für solche sachen (windows-scripting) eignet sich Autoit auch ganz gut

Download:
http://www.autoitscript.com/autoit3/downloads.shtml
Sclot ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 15:22 Nach oben    #6
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

AutoIt... mmh.. mal anschauen!

Code:
lame.exe -h --tt "Aufnahme vom 24.02.2008" --ta "Jann Hendrik Bekaan" --ty "2008" --tg "101" --tc "Weitergabe dieser Datei nur mit Genemigung des Rechteinhabers" 080224.wav 080224.mp3
wäre ein solcher Aufruf, wobei der Name auch noch eine Variable ist.

Ich würde also 4 Variablen nutzen.

- Tag
- Monat
- Jahr (nur 2 Stellen)
- Name
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 15:48 Nach oben    #7
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 240
Standard

Code:
@ECHO OFF

SET /P Tag=Tag: 
SET /P Monat=Monat: 
SET /P Jahr=Jahr: 
SET /P Name=Name: 

lame.exe -h -tt "Aufnahme vom %Tag%.%Monat%.20%Jahr%" --ta "%Name%" --ty "20%Jahr%" --tg "101" --tc "Weitergabe dieser Datei nur mit Genemigung des Rechteinhabers" %Jahr%%Monat%%Tag%.wav %Jahr%%Monat%%Tag%.mp3

PAUSE
Unter der Voraussetzung, dass du nur Dateien ab 2000 hast.
Pause am Ende kannste weglassen, wenn sich das Programm direkt beenden soll.

EDIT: -tt hinzugefügt, hatte ich vergessen
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL



Geändert von Artemis (18.05.2008 um 18:15 Uhr).
Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 16:04 Nach oben    #8
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

wow - geil.

kannst du die SET-Zeile noch erklären?

Abgesehen von einem kleinen Tippfehler der dir passiert ist (--tt vergessen) funktioniert das 1a!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 18:14 Nach oben    #9
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 240
Standard

Das weist der Variable (Zeichenkette, die vor dem = steht) eine Benutzereingabe zu. Vorher wird der Text rechts vom = ausgegeben.

Der Rest sollte selbsterklärend sein.

Zitat:
Zitat von Kommandozeilen-Hilfe
E:\Jonas>SET /?
Setzt oder löscht Umgebungsvariablen für CMD.EXE, oder zeigt sie an.

SET [Variable=[Zeichenfolge]]

Variable Bezeichnet den Namen der Umgebungsvariablen.
Zeichenfolge Eine Zeichenfolge, die der Variable zugewiesen werden soll.

Der Befehl SET ohne Parameter zeigt die aktuellen Umgebungsvariablen an.

[...]

SET /P Variable=[EingabeaufforderungZeichenfolge]

Die Option /P ermöglicht es, einer Variablen eine Eingabezeile des Benutzers
zuzuweisen und zeigt die angegebene Eingabeaufforderung an, bevor die
Eingabezeile gelesen wird. Die Eingabeaufforderung kann leer sein.

[...]
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 18.05.2008, 18:47 Nach oben    #10
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.213
Standard

okay, danke dir!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Firefox: Marktanteil klettert in Europa über 20 Prozent robo47 Nachrichten 36 03.12.2007 14:20
Windows Eingabeaufforderung Benutzer wechseln pmayer Gesuche 2 22.09.2007 20:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:08 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44