Batch-Datei

Hallo,

folgendes Problem: ein Ordner enthält (genau) einen Unterordner, der einen zufälligen Namen trägt. In diesen will ich in einer Batch-Datei (unter Windows XP) wechseln. Am besten wäre es, wenn der Name gleich in einer Variablen vorliegt.
Mein Ansatz

...
cd ordner
dir /b | set /p abc=
... 

funktioniert nicht, wohingegen

dir /b \> temp.txt
set /p abc= funktioniert.
Wer hat eine Idee, woran das liegen könnte (bzw. eine professionelle Lösung :smile: ?

mfg
Chondron

Hallo Chondron,

[…] wohingegen

dir /b > temp.txt
set /p abc= funktioniert.

Wer hat eine Idee, woran das liegen könnte (bzw. eine
professionelle Lösung :smile: ?

Habe noch keine Ahnung warum Ansatz #2 funktioniert, wohingegen #1 nicht. (Muss ich x Zuhause ausprobieren… bin gerade unterwegs.)

Aber: Was bitte ist an Deiner Lösung unprofessionell?

Melde mich demnächst x wieder.

CU DannyFox64

Hallo Chondron,

Hallo DannyFox64

Aber: Was bitte ist an Deiner Lösung
unprofessionell?

Naja, z.B. dass man eine Temp-Datei braucht, obwohl man das auch mit dem Pipe machen können müsste… Außerdem soll die Batch auch unter Win9x laufen, und da existiert der Befehl SET /P nicht. Übrigens:

Echo test | set /p abc=

funktioniert ebenfalls, es scheint also speziell mit DIR /B nicht zu klappen…

Melde mich demnächst x wieder.

Mach das :smile:

CU DannyFox64

cu Chondron

Re-Hi, Chondron,

Naja, z.B. dass man eine Temp-Datei braucht, obwohl man das
auch mit dem Pipe machen können müsste… Außerdem soll die
Batch auch unter Win9x laufen, und da existiert der Befehl SET
/P nicht. Übrigens:

Echo test | set /p abc=

funktioniert ebenfalls, es scheint also speziell mit DIR /B
nicht zu klappen…

Ja, in der Tat klappt der Befehl SET/P auf Win98 bei mir auch nicht. (Musste echt schmunzeln beim Austesten. …auf Win2K müsste es aber funktionieren…)

Und Du hast (ich lese 'mal zwischen den Zeilen) sicher recht: wenn schon eine Batch-Datei erforderlich ist, dann sollte sie möglichst auch auf allen Systemen wie gewünscht laufen.

Ansonsten: wofür verwendest Du den Batch? (Neugier: weil selbst solche Problemstellungen.)

CU DannyFox64

Hi Chondron,
ich hab nur win98, was bedeutet das /p in
set /p abc=

Link zu dos-batches
Für alle Interessierte, was man mit dos-batches machen kann seht hier hier: http://groups.google.de/groups?q=tsbat58&num=50&hl=d…
Ich hab nur tsbat58, klasse Dinge drin.
Gruß
Reinhard

Hi Chondron,
ich hab nur win98, was bedeutet das /p in
set /p abc=

Re-Hi, Chondron,

Re-Re-Guten Morgen DannyFox64

Ansonsten: wofür verwendest Du den Batch? (Neugier: weil
selbst solche Problemstellungen.)

Es geht um folgendes: Ich bin momentan Zivi in der EDV-Abteilung eines Krankenhauses, und wir verwenden standardmäßig Netscape als Browser. Das Internet läuft aber über einen Proxy, der demnach für jeden User auf jedem PC manuell eingetragen werden muss. Um das etwas zu „automatisieren“, soll die entsprechende Datei von meiner Batch manipuliert werden. Dummerweise versteckt Netscape sie aber in einem Ordner mit zufälligem Namen.
Und weil hier so ziemlich jedes Windows von 95 bis XP läuft, sollte die Batch möglichst kompatibel sein.
BTW und nur um Missverständnissen vorzubeugen: ich lese hier gerade „temporäres Unterverzeichnis auslesen“ - das ist nicht ganz korrekt: nur die Datei, in der der Name des Verzeichnisses gespeichert ist, ist temporär, das Verzeichnis an sich besteht dauerhaft.

so long,
Chondron

Hallo Chondron,
danke für die Information.
Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Guten… Chondron!

Ansonsten: wofür verwendest Du den Batch?

[…]
Und weil hier so ziemlich jedes Windows von 95 bis XP läuft,
sollte die Batch möglichst kompatibel sein.
BTW und nur um Missverständnissen vorzubeugen: ich lese hier
gerade „temporäres Unterverzeichnis auslesen“ - das ist nicht
ganz korrekt: nur die Datei, in der der Name des
Verzeichnisses gespeichert ist, ist temporär, das Verzeichnis
an sich besteht dauerhaft.

…ja, gut, dann eben: je weniger „Meta“, um so besser. Möglichst jeden einzelnen Schritt in die einfachste Art und Weise zergliedern, die das am geringsten ausgestattete OS versteht. (Das Geniale daran ist dann das universelle Funktionieren.)

Welche Lösung hast Du inzwischen gefunden, die auch auf Win95 einwandfrei läuft?

Gruss & CU DannyFox64

Hallo DannyFox64,

kurz gesagt: ich habe keine Lösung und glaube auch, dass es auf reiner Batch-Basis keine gibt. Entweder ich muss meine bescheidenen VBScript-Kenntnisse bemühen, oder auf Win9x-Systemen den Proxy manuell eintragen… naja, man kann eben nicht alles haben.

cu
Chondron

Hallo Chondron,

kurz gesagt: ich habe keine Lösung und glaube auch, dass es
auf reiner Batch-Basis keine gibt. Entweder ich muss meine
bescheidenen VBScript-Kenntnisse bemühen, oder auf
Win9x-Systemen den Proxy manuell eintragen… naja, man kann
eben nicht alles haben.

Also, ich mach’ mir noch ‚mal Gedanken. Ich habe da noch so einen recht selten verwendeten Befehl, der ähnlich einer Pipe einem anderen Befehl oder (DOS-) Programm eine Eingabe mit auf den Weg geben kann. Damit müsste das Prob. zu lösen sein. (Schick‘ ich Dir ggf. das nächste Mal gleich an Deine o.a. Mail-Adresse.)

Gruss & CU DannyFox64