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-Key: 283772

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

Printed on: April 25, 2024 at 10:04 o'clock

Mitglied: 122990
Solution 122990 Sep 24, 2015, updated at Sep 25, 2015 at 10:06:15 (UTC)
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.
Member: AnkhMorpork
AnkhMorpork Sep 24, 2015 at 08:29:10 (UTC)
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
Member: Penny.Cilin
Penny.Cilin Sep 24, 2015 at 13:59:00 (UTC)
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.
Member: beggagsell
beggagsell Sep 25, 2015 at 10:12:33 (UTC)
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.
Mitglied: 122990
Solution 122990 Sep 25, 2015 updated at 17:57:04 (UTC)
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"  
Mitglied: 114757
Solution 114757 Sep 25, 2015 updated at 17:57:13 (UTC)
Goto Top
Moin,
Zum Escaping von Sonderzeichen siehe:
http://www.robvanderwoude.com/escapechars.php

Gruß jodel32