Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Abfrage nach neuem Namen





Frage

Hallo Leute Gibt es eine Möglichkeit das mich ein DOS-Batch Programm nach einem neuen Namen für eine Datei frägt? Ich habe das Problem das mir das System immer das selbe File generiert (täglich). Nun möchte ich ein DOS-Batch schreiben das ich dann einfach noch anklicken muß und ich zur Eingabe des neuen Namen gefragt werde. Kann mir hier jemand weiterhelfen? danke. cheers Joachim

Antwort 1 von BaronMuki

Das geht eigentlich nur mit einem kleinen Tool, aber um Dir weiterzuhelfen wäre es nett wenn Du sagen würdest mit was für einem DOS du arbeitest.
Das umbenennen selbst geht mit:
ren AltDateiName.ext NeuDateiName.ext
Sag mal wie willst Du in DOS was anklicken?

Gruss Muki

Die Textformatierungen wurden mit SNTool V1.1.1 erstellt

Antwort 2 von anno_58

kannst du das mal genauer erklären? Welche File wird da täglich generiert? Bekommst du eine Fehlermeldung in der Art "Datei schon vorhanden - überschreiben?"

Gruß Anno

Antwort 3 von Joachim.Br

ich erstelle ein Batch file, das ich dann schließlich im Windows aktivieren werde. Da ich mich VB.NET oder sonstigen Programmiersprachen nicht auskenne bleibt mir nur noch das DOS übrig.

Das File das generiert wird kommt von einer Software die mir einen System Check macht. Da ich hier leider keinen Fortlaufenden generieren kann, möcht ich mir so abhelfen.

Weis auch das es mit F2 funktionieren würde. Da im Win eh nur immer gecklickt wird, möcht ich mir das Batch auf den Desktop ziehen, anklicken, Namen eingeben und fertig.

Gruß
Joachim

Antwort 4 von _gau_

Welches Windows?

Bei Win2000/XP geht's in einer Batch mit normalen BS-eigenen Mitteln (siehe Befehl SET mit Parameter /p).

Bei Win9x braucht man für eine solche Batch ein extra Tool.

Oder man machts mit dem WSH (VB-Script).

[gau]

Antwort 5 von Joachim.Br

so jetzt gehts.
Der Parameter set /P hat mir sehr geholfen und ich konnte mit diesem Befehl die Lösung finden.

thanks to [gau] and other....

greets
Joachim

Antwort 6 von manei

Hallo,

anbei eine kleine Batch, mit der Du in einer übergeordneten Batch ein Eingabe machen kannst.

Ich setze mal voraus, daß für Dich nur die Eingabe wichtig ist und du den Ablauf für Deine Problemstellung kennst.

Folgende Batch, ich nenne sie inwhs.bat läuft nicht im reinen DOS, da sie auch WHS-Komponennten beinhaltet. Aber in Windows in der Eingabe-Aufforderung oder in einer Batch läuft sie allemal.

[inwhs.bat]
@echo off
cls
rem Dieses Programm ist eine Eingabeaufforderung
rem mit Aufruf inwhs Variable wird die Eingabe dann direkt in diese Variable eingefügt.
rem Das Programm ist fuer jede Eingabe neu aufzurufen
rem ist die Anzahl von Eingaben unbekannt, kann als letzte Eingabe
rem nur die Entertaste gedrückt werden.
rem Die Eingaben sind dann mit der vorletzten Eingabe abgeschlossen.
Set _T=%temp%\~tmp
echo Set oFS=CreateObject("Scripting.FileSystemObject")>%_T%.vbs
echo oFS.OpenTextFile("CON",2).Write "Eingabe: ">>%_T%.vbs
echo S=%2(Trim(oFS.OpenTextFile("CON",1).Readline))>>%_T%.vbs
echo Wscript.Echo "set Input="+CStr(S)>>%_T%.vbs
cscript.exe //nologo %_T%.vbs > %_T%.bat
for %%e in (%_T%.bat del) do call %%e %_T%.???
set %1=%input%
for %%e in ( _T input) do set %%e=
cls

Durch Aufruf "call Laufw.:\Verzeichnis\inwhs [variable]" steht die Eingabe dann in der angegebenen Variablen.

MfG maneich

Antwort 7 von shrike

Man sollte aber auch den Autor würdigen ;-)


:: InWSH.bat - A WSH/Batch hybrid string input routine.
::             Requires Windows Script Host version 1.0 or later.
::             Use optional command line argument UCASE to convert
::             input to all uppercase or LCASE for lowercase.
::             With WSH V2+, EVAL allows math operations, as well.
:: Tom Lavedas <lavedas@pressroom.com>
::             http://www.pressroom.com/~tglbatch/

shrike

Antwort 8 von shrike

Um nicht nur als Meckerer dazustehen (war aber nicht so gemeint ;-) hier noch ein Beispiel, wie man es gleich ganz mit dem WSH machen könnte:

'Script by shrike
dim fso, altPath, altName, neuName
set fso = CreateObject("Scripting.FileSystemObject")	

'Hier den Pfad+Namen der umzubenennenden Datei einsetzen (Beispiel)
altName = "D:\Program Files\Extended Systems Printing\NetWare Utils\beispiel.txt"

'Eingabefenster für den neuen Namen
neuName = InputBox("Bitte neuen Dateinamen eingeben: ")
if neuName = "" then WScript.Quit

altPath = fso.GetFile(altName).parentfolder
neuName = altPath & "\" & neuName

fso.MoveFile altName, neuName

Speichern als "irgendeinname.vbs"
shrike

Antwort 9 von manei

Hallo shrike,

leider wußte ich nichts von einem Autor.

Ich habe von über 2 Jahren von einem Kollegen ein unfertiges Script erhalten, das nicht lief. Woher er das hatte, weis ich nicht.

Der Input wurde über eine Input-Box gesteuert, der Output war fest vorgegeben.

Ich habe dann mit Teilen aus dieser unfertigen Vorlage und eigenen Ideen diese Batch erstellt.

Input über Eingabeaufforderung und Output an eine frei wählbare Variable; den Namen habe ich beibehalten, weil er logisch war. Das war alles.

Es ist also durchaus möglich, daß die Grundidee auf WHS-Basis von jemand anderem stammt, die fertige Batch jedoch ist von mir.

MfG maneich


Antwort 10 von shrike

Naja, mir war nur die große Übereinstimmung mit einem Script aus einer Newsgroup aufgefallen. War auch nicht bös gemeint ;-)

Übrigens interessant die dortige Möglichkeit mit eval und ucase/lcase.

shrike

Antwort 11 von manei

Hallo shrike,

das mit "eval" habe ich herausgefunden, da die frei wählbare Variable in der ursprünglichen Zeile "echo S=%1... nicht akzeptiert wurde.

Also habe ich testweise in dieser Zeile %1 durch %2 ersetzt und hatte Erfolg damit.

Ich kann also nur auf reine Eingabe bezogen wählen "inwhs [var]" oder für Eingabe mit math. Funktion "inwhs [var] eval". Das ist sehr praktisch.

Das mit ucase/lcase wußte ich noch nicht. Danke für den Tip.

Auf jeden Fall laufen alle 3 Parameter auch mit meiner Batch, allerdings immer nur per 2. Parameter nach der Variablen.

Übrigens habe ich mir auch mal die Seite von Tom Lavedas angeschaut. Sind ja teilweise sehr interessante Ansätze, aber keiner dieser Vorgaben hat auf Anhieb funktioniert. Trotzdem sehr aufschlußreich.

MfG maneich





Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: