Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Batch: Verzeichnisnamen auslesen?

65 views
Skip to first unread message

Louis Noser

unread,
Jan 1, 2017, 5:57:29 PM1/1/17
to
Hallo

Warum funktioniert das nicht? ->

FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a

Ich möchte alle Verzeichnisnamen ausgeben, die mit dummy beginnen.

Wenn wir grad dabei sind:
Was bedeutet ~nxi beim folgenden Befehl? ->

for %%i in ("%cd%") do set "Aktuell=%%~nxi"

Vielen Dank.

Grüsse
Louis

Marcel Mueller

unread,
Jan 1, 2017, 6:07:58 PM1/1/17
to
On 01.01.17 23.57, Louis Noser wrote:
> Warum funktioniert das nicht? ->
>
> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a

Also unter DOS wird das gar nix.

Unter Windows könnte es besser klappen. Allerdings wird er die gegebenen
Strings der Reihe nach durch gehen.

Etwas erfolgreicher könnte die Sache mit /einfachen/ Anführungszeichen
werden, allerdings auch nur, wenn man die Option /F nicht vergisst.

> Wenn wir grad dabei sind:
> Was bedeutet ~nxi beim folgenden Befehl? ->
>
> for %%i in ("%cd%") do set "Aktuell=%%~nxi"

Das ist eine Windows CMD.EXE Erweiterung, um Komponenten aus einem
Dateipfad auszuschneiden.

Guckst Du ss64.com. Das ist /die/ Anleitung für Windows-Batchdateien.


Marcel

Claus Reibenstein

unread,
Jan 2, 2017, 5:49:28 AM1/2/17
to
Louis Noser schrieb am 01.01.2017 um 23:57:

> Warum funktioniert das nicht? ->
>
> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a

Diese Konstruktion kenne ich nur von Windows. Unter welchem DOS soll die
funktionieren?

> Was bedeutet ~nxi beim folgenden Befehl? ->
>
> for %%i in ("%cd%") do set "Aktuell=%%~nxi"

Auch das kenne ich nur von Windows.

Beides wird in der Hilfe zum FOR-Befehl ausführlich behandelt. Die Hilfe
erreichst Du mit einem dieser Befehle (auch unter DOS):

for /?
help for

Gruß
Claus

Claus Reibenstein

unread,
Jan 2, 2017, 11:14:04 AM1/2/17
to
Marcel Mueller schrieb am 02.01.2017 um 00:07:

> Guckst Du ss64.com. Das ist /die/ Anleitung für Windows-Batchdateien.

Hier ist aber nicht Windows, sondern DOS. Hast Du dafür auch 'ne
brauchbare Seite? ss64.com führt COMMAND.COM leider nicht auf.

Gruß
Claus

Louis Noser

unread,
Jan 2, 2017, 3:36:29 PM1/2/17
to
Hallo

Am 02.01.2017 um 11:49 schrieb Claus Reibenstein:
> Diese Konstruktion kenne ich nur von Windows. Unter welchem DOS soll die
> funktionieren?

Ist das die falsche Gruppe für cmd.exe unter Windows 10?

> ...Die Hilfe
> erreichst Du mit einem dieser Befehle (auch unter DOS):
>
> for /?
> help for

Ja, habe ich natürlich schon zu Rate gezogen. Da werde ich aber leider
nicht recht schlau.

Grüsse
Louis

Herbert Kleebauer

unread,
Jan 2, 2017, 4:17:38 PM1/2/17
to
On 02.01.2017 21:36, Louis Noser wrote:

> Ist das die falsche Gruppe für cmd.exe unter Windows 10?

Nein, aber es gibt immer ein paar ewig Gestrige.


> Warum funktioniert das nicht? ->
> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a

for /f %%a in ('dir /b i:\backups\dummy*') do echo %%a




>> for /?

> Ja, habe ich natürlich schon zu Rate gezogen. Da werde ich aber leider
> nicht recht schlau.

> Was bedeutet ~nxi beim folgenden Befehl? ->
> for %%i in ("%cd%") do set "Aktuell=%%~nxi"


Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

%~nI - erstellt nur den Dateinamen von %I.
%~xI - erstellt nur die Dateierweiterung von %I.

Louis Noser

unread,
Jan 2, 2017, 5:50:56 PM1/2/17
to
Hallo

Am 02.01.2017 um 22:14 schrieb Herbert Kleebauer:
> On 02.01.2017 21:36, Louis Noser wrote:
>> Warum funktioniert das nicht? ->
>> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a
>
> for /f %%a in ('dir /b i:\backups\dummy*') do echo %%a

Das funktioniert leider bei mir (cmd.exe unter Windows 10) auch nicht.

(Gibt es für einen DOS-Batch einen Unterschied zwischen einfachem Quote
und zweifachem?)

Grüsse
Louis

Herbert Kleebauer

unread,
Jan 3, 2017, 5:43:35 AM1/3/17
to
On 02.01.2017 23:50, Louis Noser wrote:

>>> Warum funktioniert das nicht? ->
>>> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a
>>
>> for /f %%a in ('dir /b i:\backups\dummy*') do echo %%a
>
> Das funktioniert leider bei mir (cmd.exe unter Windows 10) auch nicht.

Eine etwas ausführlichere Fehlermeldung ist schon nötig falls
du Hilfe erwartest. Gib doch mal nur

dir /b i:\backups\dummy*

ein und schau ob das das liefert was du dann mit der for Schleife
zeilenweise bearbeiten willst.


> (Gibt es für einen DOS-Batch einen Unterschied zwischen einfachem Quote
> und zweifachem?)

Offensichtlich

Claus Reibenstein

unread,
Jan 3, 2017, 7:26:11 AM1/3/17
to
Louis Noser schrieb am 02.01.2017 um 21:36:

> Am 02.01.2017 um 11:49 schrieb Claus Reibenstein:
>
>> Diese Konstruktion kenne ich nur von Windows. Unter welchem DOS soll
>> die funktionieren?
>
> Ist das die falsche Gruppe für cmd.exe unter Windows 10?

Natürlich. Schließlich heißt die Gruppe de.comp.os.msdos, und mit MS-DOS
hat Windows 10 nun wirklich absolut nichts zu tun. Hierfür sind die
Windows-Gruppen zuständig, z.B. de.comp.os.ms-windows.misc oder in
diesem Fall vielleicht eher de.comp.os.ms-windows.programmer.

Gruß
Claus

Claus Reibenstein

unread,
Jan 3, 2017, 7:32:21 AM1/3/17
to
Herbert Kleebauer schrieb am 02.01.2017 um 22:14:

> On 02.01.2017 21:36, Louis Noser wrote:
>
>> Ist das die falsche Gruppe für cmd.exe unter Windows 10?
>
> Nein, aber es gibt immer ein paar ewig Gestrige.

Du meinst sicher die, die bis heute nicht begriffen haben, dass Windows
seit NT (im Business-Bereich) und XP (im Consumer-Bereich) eigenständige
Betriebssysteme sind und mit DOS absolut nichts mehr zu tun haben. Genau
diese Leute verstehen auch nicht, dass CMD.EXE ein reines
Windows-Programm ist. Zwar hat CMD.EXE den Befehlssatz von COMMAND.COM
(das ist der Kommandozeileninterpreter von DOS) weitestgehend
übernommen, so dass alte DOS-Batches oft ohne Änderungen direkt von
CMD.EXE verarbeitet werden können. Trotzdem ist CMD.EXE ein
eigenständiges Windows-Programm mit einem wesentlich größeren
Funktionsumfang und gehört allein deshalb schon nicht hierher.

Wer dies bis heute nicht begriffen hat und meint, Windows-Fragen
gehörten in eine DOS-Gruppe, der hat weder Windows noch das Usenet
begriffen und darf sich getrost zu den "ewig Gestrigen" zählen.

Gruß
Claus

Louis Noser

unread,
Jan 3, 2017, 8:44:42 AM1/3/17
to
Hallo

Am 03.01.2017 um 13:32 schrieb Claus Reibenstein:
> ...Zwar hat CMD.EXE den Befehlssatz von COMMAND.COM
> (das ist der Kommandozeileninterpreter von DOS) weitestgehend
> übernommen, so dass alte DOS-Batches oft ohne Änderungen direkt von
> CMD.EXE verarbeitet werden können.

All das habe ich schon verinnerlicht. Ganz blöd bin auch ich nicht.

Da es sich jedoch um DOS-Befehle handelt, die mich bei cmd.exe
interessieren, dachte ich, dass ich hier, wo ich doch die DOS-Experten
am ehesten vermuten darf, richtig bin.

Ich soll also Deiner Meinung nach wirklich, wenn es sich um DOS-Befehle
in der Windows-eigenen cmd.exe handelt, in einer Windows-Gruppe fragen,
wo doch hier die DOS-Cracks sein dürften?

Wer ist denn Deiner Meinung nach in dieser Gruppe hier richtig?
Jemand, dessen Rechner mit dem altehrwürdigen DOS läuft?

Ich erlaube mir nun trotzdem nochmal, hier in dieser Gruppe meine Frage
zu stellen.

Was ich möchte, ist Folgendes:
Ein Verzeichnis namens "Dummy 020117" soll testhalber per DOS-Batch in
"Dummy 030117" umbenannt werden, wobei das Datum, was die Datei vor der
Umbenennung trägt (hier 020117) nicht bekannt ist (weil das Verzeichnis
im produktiven Betrieb in bestimmten Intervallen immer von neuem
umbenannt wird). Es gibt jedoch immer nur eine einzige Datei im
Verzeichnis, deren Namen mit "Dummy" beginnt.

Wenn das Folgende einen Verzeichnisnamen (hier: dummy 020117)
zurückgeben würde, würde ich den Rest glaub ich auch noch hinkriegen.

Aber
--------------------------------------------------
for /f %%a in ('dir i:\backups\dummy*') do echo %%a
pause
--------------------------------------------------
gibt Folgendes aus:
http://workupload.com/file/HxdSJLV

Wie kriege ich es hin, dass ein Verzeichnisnameni angezeigt wird (hier
erwartete Rückgabe: "dummy 020117")?

Grüsse
Louis

Herbert Kleebauer

unread,
Jan 3, 2017, 8:52:33 AM1/3/17
to
On 03.01.2017 13:32, Claus Reibenstein wrote:
> Herbert Kleebauer schrieb am 02.01.2017 um 22:14:

> Du meinst sicher die, die bis heute nicht begriffen haben, dass Windows
> seit NT (im Business-Bereich) und XP (im Consumer-Bereich) eigenständige
> Betriebssysteme sind und mit DOS absolut nichts mehr zu tun haben.

MSDOS ist die Abkürzung für Microsoft Disk Operating System.
Bis zu welcher Version ist es denn deiner Meinung nach on-topic
hier? Bis Version 3, 5 oder vielleicht sogar bis Version 7?
Und nur weil MS dann beschlossen hat neuere Versionen nicht
mehr einfach durchzunummerieren, sondern aus werbetechnischen
Gründen Namen wie "Windows NT" zu verwenden, gehört es nicht
mehr hierher? Was wenn die nächste "Microsoft Disk Operating System"
Version nicht Windows 11 sondern wieder MSDOS 11 heißt, gehört
es dann wieder hierher?

> Genau
> diese Leute verstehen auch nicht, dass CMD.EXE ein reines
> Windows-Programm ist.

CMD.EXE ist ein reines Konsolenprogramm und nutzt das Graphik-
subsystem von Windows überhaupt nicht. Es ist ein ganz normales
Programm (Kommandointerpreter) und hat mit dem Betriebssystem
genau so viel zu tun wie etwa QBasic (Basicinterpreter). Es
gab im übrigen auch eine Version für Windows 95 (Win95cmd.exe)
genauso wie es bei Windows NT ein command.com gab.

Deiner Logik nach wären also Fragen zu Win95cmd.exe hier
on-topic, da es ja unter DOS lief, Fragen zu command.com
das jemand unter NT nutze aber off-topic?


> Zwar hat CMD.EXE den Befehlssatz von COMMAND.COM
> (das ist der Kommandozeileninterpreter von DOS) weitestgehend
> übernommen, so dass alte DOS-Batches oft ohne Änderungen direkt von
> CMD.EXE verarbeitet werden können. Trotzdem ist CMD.EXE ein
> eigenständiges Windows-Programm mit einem wesentlich größeren
> Funktionsumfang und gehört allein deshalb schon nicht hierher.

Das gilt für alle Programme. Auch eine aktuelle Wordversion
hat einen wesentlich höheren Funktionsumfang als das Word 2.0
zu DOS Zeiten als die entsprechende Newsgruppe gegründet wurde
und trotzdem sind Fragen zum aktuellen Word dort richtig
aufgehoben.

> Wer dies bis heute nicht begriffen hat und meint, Windows-Fragen
> gehörten in eine DOS-Gruppe, der hat weder Windows noch das Usenet
> begriffen und darf sich getrost zu den "ewig Gestrigen" zählen.

Fragen zu einem Microsoft Disk Operating System gehören gehören
in die Gruppe die für Microsoft Disk Operating Systeme geschaffen
wurde. Dazu gehören auch Fragen zu systemnahen Dienstprogrammen wie
eben cmd.exe oder command.com. Sicherlich nicht dahin gehören
Fragen zum Graphiksubsystem, da dies nichts mit dem Betriebssystem
zu tun hat (die gehören in eine Windowsgruppe).

Sehr hilfreich wäre allerdings die Angabe der Betriebssystemversion
auf die sich die Frage bezieht.





Ulrich F. Heidenreich

unread,
Jan 3, 2017, 10:42:18 AM1/3/17
to
Louis Noser in <news:ed1o68...@mid.individual.net>:

>Da es sich jedoch um DOS-Befehle handelt, die mich bei cmd.exe
>interessieren,

Wonach du fragtest, waren aber keine DOS-Befehle.

>for /f %%a in ('dir i:\backups\dummy*') do echo %%a

Auch das ist kein DOS-Befehl sondern Syntax des cmd.exe. DOS
würde darauf *ausprobier* mit einem Syntaxfewhler reagieren:

|Microsoft(R) Windows 95
| (C)Copyright Microsoft Corp 1981-1996.

Und ja. Da liegt noch ein DOS drunter, während der cmd.exe was eigenes
ist.

|G:\Dokumente\Desktop>for /f %%a in ('dir i:\backups\dummy*') do echo %%a
|Syntaxfehler

Der Sprachumfang des FOR-Befehls in DOS ist wesentlich geringer als der
des cmd.exe:

|G:\Dokumente\Desktop>for /?
|Führt einen Befehl für jede Datei einer Dateigruppe einzeln aus.
|
|FOR %Variable IN (Gruppe) DO Befehl [Parameter]
|
| %Variable Ein ersetzbarer Parameter.
| (Gruppe) Eine Gruppe mit mindestens einer Datei. Platzhalter sind zulässig.
| Befehl Befehl, der für jede Datei ausgeführt wird.
| Parameter Parameter und Optionen für den angegebenen Befehl.
|
|Geben Sie bei einem Stapelverarbeitungsprogramm in der FOR-Anweisung
|statt %Variable %%Variable an.

Insbesondere also zum Beispiel kein /f. Zudem expandiert DOS bei Nutzen
von einfachen Hochkommata keineswegs die wohl gewünschte Ausgabe des
"DIR"-Befehls (Linux command substitution), sondern macht einfach

|G:\Dokumente\Desktop>for %a in ('dir i:\backups\dummy*') do echo %
|
|G:\Dokumente\Desktop>echo 'dir
|'dir
|
|G:\Dokumente\Desktop>echo i:\backups\DUMMY1
|i:\backups\DUMMY1
|
|G:\Dokumente\Desktop>echo i:\backups\DUMMY2
|i:\backups\DUMMY2
|
|G:\Dokumente\Desktop>echo i:\backups\DUMMY3
|i:\backups\DUMMY3

>gibt Folgendes aus:
>http://workupload.com/file/HxdSJLV

Wieso muss man DOS-Ausgaben eigentlich als *.jpg hochladen?


CU!
Ulrich
--
In 11 Monaten und 22 Tagen ist Weihnachten.
Programme, soviel ihr wollt; Preise, die ihr selbst bestimmt:
Schaut einfach mal auf ftp://warez.invalid.de rein
Stellt euch vor, es ist Dienstag und keiner geht hin!

Ulrich F. Heidenreich

unread,
Jan 3, 2017, 11:22:32 AM1/3/17
to
Claus Reibenstein in <news:ed1juk...@mid.individual.net>:

>Wer dies bis heute nicht begriffen hat und meint, Windows-Fragen
>gehörten in eine DOS-Gruppe, der hat weder Windows noch das Usenet
>begriffen und darf sich getrost zu den "ewig Gestrigen" zählen.

Geh nicht so hart ins Gericht. Zumindesst bei mir ist es so, daß
ich als DOS-Anwender bei cmd.exe-Fragen gar keine Antwort wüsste.
Und die anderen hier wohl auch nicht.

Es ist also kein nicht Antworten wollen, sondern ein gar nicht
können, lieber Louis.

CU!
Ulrich
--
Ja.

Claus Reibenstein

unread,
Jan 3, 2017, 11:48:44 AM1/3/17
to
Louis Noser schrieb am 03.01.2017 um 14:44:

> Am 03.01.2017 um 13:32 schrieb Claus Reibenstein:
>
>> ...Zwar hat CMD.EXE den Befehlssatz von COMMAND.COM
>> (das ist der Kommandozeileninterpreter von DOS) weitestgehend
>> übernommen, so dass alte DOS-Batches oft ohne Änderungen direkt von
>> CMD.EXE verarbeitet werden können.
>
> All das habe ich schon verinnerlicht. Ganz blöd bin auch ich nicht.
>
> Da es sich jedoch um DOS-Befehle handelt, die mich bei cmd.exe
> interessieren

Das sind eben _keine_ DOS-Befehle. Die DOS-Befehle machen nur einen
kleinen Teil der Befehle aus. FOR /F gehört schon _nicht_ mehr dazu,
ebensowenig die Erweiterungen %~nI, %~xI etc. Diese sind rein
Windows-spezifisch und deshalb hier fehl am Platz.

Ist das wirklich so schwer zu kapieren?

> Wer ist denn Deiner Meinung nach in dieser Gruppe hier richtig?
> Jemand, dessen Rechner mit dem altehrwürdigen DOS läuft?

Zum Beispiel. Oder auch jemand, der DOS in einer virtuellen Maschine
laufen hat. Oder auch jemand, der sich für DOS interessiert.

> Ich erlaube mir nun trotzdem nochmal, hier in dieser Gruppe meine
> Frage zu stellen.

Und ich erlaube mir, Dich ab sofort zu ignorieren. Leb wohl.

Gruß
Claus

Claus Reibenstein

unread,
Jan 3, 2017, 12:00:35 PM1/3/17
to
Herbert Kleebauer schrieb am 03.01.2017 um 14:49:

> On 03.01.2017 13:32, Claus Reibenstein wrote:
>
>> Du meinst sicher die, die bis heute nicht begriffen haben, dass
>> Windows seit NT (im Business-Bereich) und XP (im Consumer-Bereich)
>> eigenständige Betriebssysteme sind und mit DOS absolut nichts mehr
>> zu tun haben.
>
> MSDOS ist die Abkürzung für Microsoft Disk Operating System.
> Bis zu welcher Version ist es denn deiner Meinung nach on-topic
> hier? Bis Version 3, 5 oder vielleicht sogar bis Version 7?

Jede MS-DOS-Version.

> Und nur weil MS dann beschlossen hat neuere Versionen nicht
> mehr einfach durchzunummerieren, sondern aus werbetechnischen
> Gründen Namen wie "Windows NT" zu verwenden, gehört es nicht
> mehr hierher?

Weil es eben _kein_ MS-DOS mehr ist bzw. enthält. Alle Windows-Versionen
vor NT waren keine Betriebssysteme, sondern hatten immer ein MS-DOS als
Unterbau, welches sich auch separat starten ließ. Nur dieser Unterbau
war das eigentliche Betriebssystem und trug den Namen MS-DOS. Ab NT
fehlt dieser Unterbau.

Es hat also mitnichten etwas mit "werbetechnischen Gründen" zu tun,
sondern mit rein technischen.

> Was wenn die nächste "Microsoft Disk Operating System"
> Version nicht Windows 11 sondern wieder MSDOS 11 heißt, gehört
> es dann wieder hierher?

Jetzt wird es albern.

>> Genau
>> diese Leute verstehen auch nicht, dass CMD.EXE ein reines
>> Windows-Programm ist.
>
> CMD.EXE ist ein reines Konsolenprogramm und nutzt das Graphik-
> subsystem von Windows überhaupt nicht.

Dann lass CMD.EXE doch mal ohne Windows laufen.

>> Zwar hat CMD.EXE den Befehlssatz von COMMAND.COM
>> (das ist der Kommandozeileninterpreter von DOS) weitestgehend
>> übernommen, so dass alte DOS-Batches oft ohne Änderungen direkt von
>> CMD.EXE verarbeitet werden können. Trotzdem ist CMD.EXE ein
>> eigenständiges Windows-Programm mit einem wesentlich größeren
>> Funktionsumfang und gehört allein deshalb schon nicht hierher.
>
> Das gilt für alle Programme. Auch eine aktuelle Wordversion
> hat einen wesentlich höheren Funktionsumfang als das Word 2.0
> zu DOS Zeiten als die entsprechende Newsgruppe gegründet wurde
> und trotzdem sind Fragen zum aktuellen Word dort richtig
> aufgehoben.

Von welcher Newsgroup redest Du? Hat die DOS im Namen?

> Fragen zu einem Microsoft Disk Operating System gehören gehören
> in die Gruppe die für Microsoft Disk Operating Systeme geschaffen
> wurde.

Dann können wir uns die Windows-Gruppen ja schenken.

> Dazu gehören auch Fragen zu systemnahen Dienstprogrammen wie
> eben cmd.exe oder command.com.

COMMAND.COM ja, CMD.EXE nein.

> Sicherlich nicht dahin gehören
> Fragen zum Graphiksubsystem, da dies nichts mit dem Betriebssystem
> zu tun hat (die gehören in eine Windowsgruppe).

Nochmal: Windows ist seit NT bzw. XP _kein_ "Graphiksubsystem" mehr,
sondern ein vollständiges Betriebssystem.

Ist das wirklich so schwer zu kapieren?

Gruß
Claus

Hans-Bernhard Bröker

unread,
Jan 3, 2017, 1:04:14 PM1/3/17
to
Am 03.01.2017 um 14:49 schrieb Herbert Kleebauer:
> On 03.01.2017 13:32, Claus Reibenstein wrote:

>> Genau
>> diese Leute verstehen auch nicht, dass CMD.EXE ein reines
>> Windows-Programm ist.
>
> CMD.EXE ist ein reines Konsolenprogramm und nutzt das Graphik-
> subsystem von Windows überhaupt nicht.

Es ist allerdings ein _Windows_-Konsolenprogramm (oder eines fuer OS/2,
wenn wir hier eh schon off-topic sind...). Das ist was anderes als ein
Windows-GUI-Programm, und auch was anderes als ein DOS-Programm.

> Es ist ein ganz normales
> Programm (Kommandointerpreter) und hat mit dem Betriebssystem
> genau so viel zu tun wie etwa QBasic (Basicinterpreter).

Es hat mit dem Betriebssystem soviel zu tun, dass das System
unveränderbar vorkonfiguriert ist, Batchfiles (*.bat; *.cmd) mithilfe
dieses Programms auszuführen.

> Deiner Logik nach wären also Fragen zu Win95cmd.exe hier
> on-topic, da es ja unter DOS lief,

Wenn es wirklich unter DOS, (also z.B. einem in den DOS-Modus gebooteten
Win95SE) gelaufen sein sollte, vielleicht. Soweit ich mich dunkel
erinnere, lief Win95cmd.exe aber nur innerhalb der GUI.

> Dazu gehören auch Fragen zu systemnahen Dienstprogrammen wie
> eben cmd.exe oder command.com.

Eben nicht. Weil cmd.com nun mal kein Dienstprogramm von MS-DOS ist,
und auch nie war.

Und dein Versuch, Windows NT samt Nachfolger mit Gewalt unter den Hut
"MS-DOS" zu quetschen, ist einfach nur albern.

Herbert Kleebauer

unread,
Jan 3, 2017, 2:52:32 PM1/3/17
to
On 03.01.2017 14:44, Louis Noser wrote:

> Aber
> --------------------------------------------------
> for /f %%a in ('dir i:\backups\dummy*') do echo %%a
> pause
> --------------------------------------------------


Diesmal hast du aber das "/b" bei "dir" weggelassen.


Herbert Kleebauer

unread,
Jan 3, 2017, 4:05:35 PM1/3/17
to
On 03.01.2017 17:48, Claus Reibenstein wrote:

> Das sind eben _keine_ DOS-Befehle. Die DOS-Befehle machen nur einen
> kleinen Teil der Befehle aus. FOR /F gehört schon _nicht_ mehr dazu,
> ebensowenig die Erweiterungen %~nI, %~xI etc. Diese sind rein
> Windows-spezifisch und deshalb hier fehl am Platz.
>
> Ist das wirklich so schwer zu kapieren?

Wenn man unter DOS das Betriebssystem versteht, gibt es keine
"DOS-Befehle" sondern nur das INT 21 Programminterface. DOS
kennt keine Befehle wie "dir", "for" etc. Das sind Befehle
die von der shell ausgeführt werden. Und es steht jedem frei,
eine shell seiner Wahl zu benutzen, z.B. das standardmäßig
vorhandene command.com, einen cmd-Klon (win95cmd.exe) oder
auch eine aus der Unix-Welt stammende bash shell.

%~nI, %~xI hat überhaupt nichts mit Windows zu tun sonder
ist einzig und allein ein Konstrukt das von cmd.exe ausgewertet
wird.



Herbert Kleebauer

unread,
Jan 3, 2017, 4:05:38 PM1/3/17
to
On 03.01.2017 18:00, Claus Reibenstein wrote:
> Herbert Kleebauer schrieb am 03.01.2017 um 14:49:


>> MSDOS ist die Abkürzung für Microsoft Disk Operating System.
>> Bis zu welcher Version ist es denn deiner Meinung nach on-topic
>> hier? Bis Version 3, 5 oder vielleicht sogar bis Version 7?
>
> Jede MS-DOS-Version.

Also auch Windows 10.


>> Und nur weil MS dann beschlossen hat neuere Versionen nicht
>> mehr einfach durchzunummerieren, sondern aus werbetechnischen
>> Gründen Namen wie "Windows NT" zu verwenden, gehört es nicht
>> mehr hierher?
>
> Weil es eben _kein_ MS-DOS mehr ist bzw. enthält. Alle Windows-Versionen
> vor NT waren keine Betriebssysteme, sondern hatten immer ein MS-DOS als
> Unterbau, welches sich auch separat starten ließ. Nur dieser Unterbau
> war das eigentliche Betriebssystem und trug den Namen MS-DOS. Ab NT
> fehlt dieser Unterbau.

Wenn dieser "Unterbau" fehlen würde, wäre es kein Betriebssystem.
Nur der Code für diesen Unterbau wurde bei NT völlig neu geschrieben
und basiert nicht mehr auf dem alten DOS Code. Gleichzeitig wurde es
untrennbar mit Graphiküberbau verschmolzen. Da das Gesamtsystem nur
einen Namen haben kann wurde es aus werbetechnischen Gründen als
"Windows" und nicht als "DOS" vermarktet. Logisch gesehen sind es
aber immer noch zwei getrennte Bereiche, die betriebssystemspezifischen
Fragen gehören in die DOS Gruppen, die Fragen zum Graphiksystem in
die Windowsgruppen.

Kein Mensch würde auf die Idee kommen, dass Fragen zu neueren
Linuxversionen nicht mehr in die Linuxgruppen gehören, nur weil
alle neueren Distribution mit einer graphischen Bedienoberfläche
ausgeliefert werden.

Im übrigen konnte man zumindest bis Windows XP (bei den neuere
Versionen weiß ich es nicht) im Bootmenü auch im Konsolenmodus
starten, bei dem dann nur der "Unterbau" (d.h. das Betriebssystem)
nicht aber das Graphiksystem gestartet wurde.


> Es hat also mitnichten etwas mit "werbetechnischen Gründen" zu tun,
> sondern mit rein technischen.

Welche technischen Gründe sollte es haben, dass Gesamtsystem
Windows NT und nicht DOS 8 zu nennen?


>> Was wenn die nächste "Microsoft Disk Operating System"
>> Version nicht Windows 11 sondern wieder MSDOS 11 heißt, gehört
>> es dann wieder hierher?
>
> Jetzt wird es albern.

Das ist eine ganz erst gemeinte Frage. Du machst anscheinen
on/off topic nur vom Namen und nicht vom Inhalt abhängig.


>> Fragen zu einem Microsoft Disk Operating System gehören gehören
>> in die Gruppe die für Microsoft Disk Operating Systeme geschaffen
>> wurde.
>
> Dann können wir uns die Windows-Gruppen ja schenken.

Ich möchte ungern die Fragen zum graphischen Subsystem von
Windows in den msdos Gruppen haben. Andererseits wird von
mir keiner Hilfe zu Batchfragen bekommen, wenn er sie nicht
in den dafür zuständigen msdos Gruppen stellt, weil ich
Windowsgruppen überhaupt nicht lese.


>> Dazu gehören auch Fragen zu systemnahen Dienstprogrammen wie
>> eben cmd.exe oder command.com.
>
> COMMAND.COM ja, CMD.EXE nein.

Für die ewig gestrigen, die auf dem Stand der 90er Jahre
stehen geblieben sind vielleicht nicht, für alle andern schon.


> Nochmal: Windows ist seit NT bzw. XP _kein_ "Graphiksubsystem" mehr,
> sondern ein vollständiges Betriebssystem.

Ein vollständiges Betriebssystem war auch DOS 1.0. Windows NT/XP ist
wie DOS 7 oder Linux ein Betriebssystem, nur hat man bei Windows NT/XP
nicht mehr die Möglichkeit sich frei für ein graphisches Benutzer-
interface zu entscheiden da dies fest mit dem Betriebssystem
verbunden ist. Während MS früher zwei Namen, DOS für das Betriebssystem
und Windows für graphische Benutzerinterface verwendete, gibt es
nach der Verschmelzung nur noch den Namen "Windows" für das Gesamtsystem.
Aber deswegen gehören die Fragen zum Betriebssystem teil noch lange nicht
in die Windows-Gruppen.




Louis Noser

unread,
Jan 3, 2017, 5:46:48 PM1/3/17
to
Am 03.01.2017 um 20:49 schrieb Herbert Kleebauer:
> Diesmal hast du aber das "/b" bei "dir" weggelassen.

Du findest das lustig, ja?

Statt rumzumotzen und die rechthaberischen Korinthenkacker zu markieren,
hättet Ihr alle besser entweder das Maul gehalten, oder dann etwas
Konstruktives zu meiner Frage beigetragen.

Wie zB. sie zu beantworten.

Aber eben: Klischee hin oder her: Tendenziell sind mehr Deutsche
rummotzende, rechthaberische "Ich-weiss-wie-die-Welt-tickt"-Hirnis als
die Schweizer.

Dann halt. Ich werds auch selbst hinkriegen.

Louis

Herbert Kleebauer

unread,
Jan 4, 2017, 2:35:31 AM1/4/17
to
On 03.01.2017 23:46, Louis Noser wrote:
> Am 03.01.2017 um 20:49 schrieb Herbert Kleebauer:

>> Diesmal hast du aber das "/b" bei "dir" weggelassen.
>
> Du findest das lustig, ja?

Deine Originalzeile die nicht funktionierte:

FOR %%a IN ("dir /b i:\backups\dummy*") DO echo %%a


Meine korrigierte Version:

for /f %%a in ('dir /b i:\backups\dummy*') do echo %%a


Du lässt das /b weg und beschwerst dich, dass es wieder
nicht funktioniert:

for /f %%a in ('dir i:\backups\dummy*') do echo %%a


Was findest du daran lustig?

Louis Noser

unread,
Jan 4, 2017, 4:34:59 AM1/4/17
to
Hallo

Endlich geschafft!

Das also ist die Lösung:
for /d %%a in (i:\backups\dummy*) do rename "%%a" "Dummy 070117"

(Auch wenn es sich nicht um Dos handelt: Weil hier angefangen, auch hier
beendet.)

Grüsse
Louis

Claus Reibenstein

unread,
Jan 4, 2017, 8:36:14 AM1/4/17
to
Louis Noser schrieb am 03.01.2017 um 23:46:

> Am 03.01.2017 um 20:49 schrieb Herbert Kleebauer:
>
>> Diesmal hast du aber das "/b" bei "dir" weggelassen.
>
> Du findest das lustig, ja?

Ich weiß nicht, wie Du darauf kommst. Mir scheint Herberts Antwort
durchaus ernst gemeint zu sein.

> [restliches Rumgemotze gesnipt]

Gruß
Claus

Ulrich F. Heidenreich

unread,
Jan 4, 2017, 9:32:39 AM1/4/17
to
Hans-Bernhard Bröker in <news:ed27cs...@mid.dfncis.de>:

>Wenn es wirklich unter DOS, (also z.B. einem in den DOS-Modus gebooteten
>Win95SE) gelaufen sein sollte, vielleicht. Soweit ich mich dunkel
>erinnere, lief Win95cmd.exe aber nur innerhalb der GUI.

Was ist ein win95cmd.exe? Zumindest mein unterm Win95 liegendes DOS
kennt das Programm nicht.

Solltest Du dagegen den command.com meinen, irrst Du. Man braucht kein
Win95 (win95SE gibt's nicht, vielleicht meinst Du win98SE?) in irgend-
einen DOS-Modus zu booten, sondern ganz einfach das GUI Namens "win"
erst gar nicht zu starten.

Das mache ich bis heute aus historischen Gründen noch so, weil das
System noch aus einer Zeit stammt, wo 98% aller Anwendungen reine DOS-
Anwendungen waren und man nur bei Bedarf (zum Beispiel für das in Excel
realisierte Abschlussprogramm "win excel abschluss.xls") das Windows
daraus startete und nach Beendigung wieder zum DOS zurückkehrte.

Das schaut bis heute dann noch so aus. Config.sys:

|[menu]
|menuitem=windows,Windows
|menuitem=dos,Dos
|menudefault=windows,10
|
|[windows]
|DEVICE=C:\WINDOWS\HIMEM.SYS
|DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
|shell=C:\windows\command.com /p /E:4096
|DOS=HIGH,UMB
|DEVICEHIGH=C:\SCSI\ASPI8U2.SYS /D
|DEVICEHIGH=C:\SCSI\ASPICD.SYS /D:ASPICD0
|
|[dos]
|DEVICE=C:\WINDOWS\HIMEM.SYS
|DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
|DOS=HIGH,UMB
|DEVICEHIGH=C:\SCSI\ASPI8U2.SYS /D
|DEVICEHIGH=C:\SCSI\ASPICD.SYS /D:ASPICD0
|
|[common]
|device=C:\windows\command\ansi.sys

Autoexec.bat (auszugsweise):

|rem disable atx-powerdown
|d:\tools\nooff

Dies wurde erst ab ATX nötig, weil sonst die Kiste nach Ende von Windows
ausgeht, statt zurück ins DOS zu kehren.

|rem kbdriver/doskey needed in windows too:
|LH keyb gr,,c:\windows\COMMAND\keyboard.sys
|LH C:\windows\command\doskey
|
|if %CONFIG%==windows goto win
|if %CONFIG%==dos goto dosstart
|
|:win
|rem just start windows
|rem (needs "boutgui=0" in msdos.sys)
|win
|rem if win ends just jump into dos ...
|
|:dosstart
|rem use the "real" autoexec.bat while starting dos:
|c:\windows\dosstart

CU!
Ulrich
--
In 11 Monaten und 21 Tagen ist Weihnachten.
Programme, soviel ihr wollt; Preise, die ihr selbst bestimmt:
Schaut einfach mal auf ftp://warez.invalid.de rein
Stellt euch vor, es ist Mittwoch und keiner geht hin!

Hans-Bernhard Bröker

unread,
Jan 4, 2017, 4:51:59 PM1/4/17
to
Am 04.01.2017 um 15:15 schrieb Ulrich F. Heidenreich:
> Hans-Bernhard Bröker in <news:ed27cs...@mid.dfncis.de>:

>> Wenn es wirklich unter DOS, (also z.B. einem in den DOS-Modus gebooteten
>> Win95SE) gelaufen sein sollte, vielleicht. Soweit ich mich dunkel
>> erinnere, lief Win95cmd.exe aber nur innerhalb der GUI.
>
> Was ist ein win95cmd.exe? Zumindest mein unterm Win95 liegendes DOS
> kennt das Programm nicht.

Ein von Microsoft kostenfrei zur Verfügung gestelltes Programm, das dazu
gedacht war, die Fähigkeiten von NT's cmd.exe im Win9x-Umfeld
auszuprobieren. Es war meines Wissens nie Lieferumfang von Win9x,
sondern über MSDN und andere Wege als separates Paket zu bekommen.

> Solltest Du dagegen den command.com meinen,

Warum wohl sollte ich das meinen, und was ganz anderes schreiben?


Ulrich F. Heidenreich

unread,
Jan 5, 2017, 5:42:22 AM1/5/17
to
Hans-Bernhard Bröker in <news:ed593t...@mid.dfncis.de>:

>Am 04.01.2017 um 15:15 schrieb Ulrich F. Heidenreich:
>
>> Was ist ein win95cmd.exe? Zumindest mein unterm Win95 liegendes DOS
>> kennt das Programm nicht.
>
>Ein von Microsoft kostenfrei zur Verfügung gestelltes Programm, das dazu
>gedacht war, die Fähigkeiten von NT's cmd.exe im Win9x-Umfeld
>auszuprobieren. Es war meines Wissens nie Lieferumfang von Win9x,
>sondern über MSDN und andere Wege als separates Paket zu bekommen.

Interessant. Verd*** nochmal. Da gab es mal sowas wie ein "Windows
Resource Kit", da hätte es u.U. drin gewesen sein können; ich find's
nicht mehr wieder. Oder habe mir damals nur die wirklich gute Windows
Befehlsreferenz draus ausgepackt

>> Solltest Du dagegen den command.com meinen,
>
>Warum wohl sollte ich das meinen, und was ganz anderes schreiben?

Weil das im Usenet oftmals der Fall ist. Sorry, war nicht so gemeint.

CU!
Ulrich
--
In 11 Monaten und 20 Tagen ist Weihnachten.
Programme, soviel ihr wollt; Preise, die ihr selbst bestimmt:
Schaut einfach mal auf ftp://warez.invalid.de rein
Stellt euch vor, es ist Donnerstag und keiner geht hin!

Hans-Bernhard Bröker

unread,
Jan 5, 2017, 3:12:35 PM1/5/17
to
Am 05.01.2017 um 11:26 schrieb Ulrich F. Heidenreich:

> Interessant. Verd*** nochmal. Da gab es mal sowas wie ein "Windows
> Resource Kit", da hätte es u.U. drin gewesen sein können;

Das könnte durchaus passen, ja.

Frank Hauer

unread,
Jan 21, 2017, 3:30:46 PM1/21/17
to

Hallo


> Hallo
>
> Warum funktioniert das nicht? ->
>
> FOR %%a IN ("dir/b i:\backups\dummy*") DO echo %%a
>
> Ich möchte alle Verzeichnisnamen ausgeben, die mit dummy beginnen.


Test das doch mal
for /f %%f in ('dir /b c:\wind*') do (echo %%f)


und

%~nxI expands %I to a file name and extension only


Gruß
0 new messages