beggagsell
Goto Top

Mehrere Batch dateien erstellen lassen

Hallo zusammen,
wieder quält mich ein Problem, welches ich in der DOS Box (WIN7) gerade versuche zu lösen:

Ausgangssituation:

Ich habe eine Datei Nummer.txt, in dieser stehen Werte:
Nummer1
Nummer2
Nummer3
...

Mit dieser Datei will ich für jede Zeile eine separate Datei erstellen
Nummer1.cmd
Nummer2.cmd
Nummer3.cmd

In die Dateien soll immer derselbe text geschrieben werden
REM Text mit variablen

Ist das überhaupt auf DOS Ebene möglich?


und dann noch eine Frage:
Ist es möglich mit einem Befehl alle cmd Dateien in einem separaten Verzeichnis ausführen zu lassen?


Viele Grüße

Content-ID: 283772

Url: https://administrator.de/contentid/283772

Ausgedruckt am: 25.11.2024 um 22:11 Uhr

122990
Lösung 122990 24.09.2015, aktualisiert am 25.09.2015 um 12:06:15 Uhr
Goto Top
Moin,
Ist das überhaupt auf DOS Ebene möglich?
abä sichä ..
@echo off
for /f "usebackq delims=" %%a in ("C:\Nummer.txt") DO @(  
    echo REM Text mit Variablen>"C:\Ausgabe\%%a.cmd"  
)
Ist es möglich mit einem Befehl alle cmd Dateien in einem separaten Verzeichnis ausführen zu lassen?
Logisch face-smile
@echo off
for %%a in ("C:\Ausgabe\*.cmd") do call "%%a"  
Gruß grexit

p.s. alle Skripte sind für die Ausführung in einer Batchdatei vorgesehen nicht direkt auf der Konsole.
AnkhMorpork
AnkhMorpork 24.09.2015 um 10:29:10 Uhr
Goto Top
Zitat von @122990:

Moin,
Ist das überhaupt auf DOS Ebene möglich?
abä sichä ..

<Klug###>
Er hat keine DOS-Ebene. Die Zeiten sind vorbei (zumindest unter Win 7).
</Klug###>

Ankh
Penny.Cilin
Penny.Cilin 24.09.2015 um 15:59:00 Uhr
Goto Top
Zitat von @AnkhMorpork:

Zitat von @122990:

Moin,
Ist das überhaupt auf DOS Ebene möglich?
abä sichä ..

<Klug###>
Er hat keine DOS-Ebene. Die Zeiten sind vorbei (zumindest unter Win 7).
</Klug###>

Ankh

Die Zeiten sind schon seit Windows NT 3.1 vorbei. Es handelt sich um ein CLI (Command Line Interface). Neudeutsch auch Eingabeaufforderung.
Nur weil da ein C:\> steht denkt jeder "Hui unter Windows x gibt es immer noch eine DOS-BOX.". Ich kriege immer einen dicken Hals. Die CLI kann wesentlich mehr als früher DOS.

Aber die Leute lernen es einfach nicht. face-sad


Gruss Penny.
beggagsell
beggagsell 25.09.2015 um 12:12:33 Uhr
Goto Top
DIe Lösung funktioniert .
Ich bleib nur an einem Problem gerade hängen:
echo REM Text mit Variablen>"C:\Ausgabe\%%a.cmd"
Wie muss der Syntax sein, wenn ich in die Zieldatei folgenden Wert eintragen will:

set datum=%jahr%%monat%%tag%
if not exist D:\Spedion\Abfahrtkontrolle\%LKW%\%datum%* goto mail

in der ersten Datei schreibe ich
echo set datum=%%jahr%%%%monat%%%%tag%% >>"C:\Ausgabe\%%a.cmd" -> das Dateum erscheint im Syntax JJ MM TT
leider mit Leerstellen. Ich brauch das ohne Leerstellen

Wenn ich in der ersten Date schreibe
echo SET Dateiname=%%~n0 >>"C:\Ausgabe\%%a.cmd"
Dann erscheint in der Zieldatei ja auch SET Dateiname=%~n0

Gruß
Beggagsell


Zitat von @122990:

Moin,
Ist das überhaupt auf DOS Ebene möglich?
abä sichä ..
> @echo off
> for /f "usebackq delims=" %%a in ("C:\Nummer.txt") DO @(  
>     echo REM Text mit Variablen>"C:\Ausgabe\%%a.cmd"  
> )
> 
Ist es möglich mit einem Befehl alle cmd Dateien in einem separaten Verzeichnis ausführen zu lassen?
Logisch face-smile
> @echo off
> for %%a in ("C:\Ausgabe\*.cmd") do call "%%a"  
> 
Gruß grexit

p.s. alle Skripte sind für die Ausführung in einer Batchdatei vorgesehen nicht direkt auf der Konsole.
122990
Lösung 122990 25.09.2015 aktualisiert um 19:57:04 Uhr
Goto Top
Zitat von @beggagsell:
in der ersten Datei schreibe ich
echo set datum=%%jahr%%%%monat%%%%tag%% >>"C:\Ausgabe\%%a.cmd" -> das Dateum erscheint im Syntax JJ MM TT
leider mit Leerstellen. Ich brauch das ohne Leerstellen
Kann ich nicht bestätigen, da muss dein Ausgangsformat schon Fehler haben
Wenn ich in der ersten Date schreibe
echo SET Dateiname=%%~n0 >>"C:\Ausgabe\%%a.cmd"
Dann erscheint in der Zieldatei ja auch SET Dateiname=%~n0
Schalte Delayed Expansion ein und weise es einer Variablen zu
setlocal enabledelayedexpansion
set "var=%%~n0"  
echo SET Dateiname=!var!>>"C:\Ausgabe\%%a.cmd"  
114757
Lösung 114757 25.09.2015 aktualisiert um 19:57:13 Uhr
Goto Top
Moin,
Zum Escaping von Sonderzeichen siehe:
http://www.robvanderwoude.com/escapechars.php

Gruß jodel32