76976
Goto Top

VBS - Eingabe in einer InputBox in einer txt ausgeben

Hallo alle zusammen

Ich habe folgenden Quelltext:

dim username
username=inputbox ("Please enter your Username:","Input","Username")

Wie kann ich dem Script jetzt sagen, dass es den "Input" in eine .txt hauen soll???

MfG Pepper

Content-ID: 112814

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

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

Karo
Karo 31.03.2009 um 12:33:06 Uhr
Goto Top
Moin,

per FileSystemObject

Dim fso, ZielDatei, FileOut,username
ZielDatei = "c:\DateiName.txt"
username=inputbox ("Please enter your Username:","Input","Username")
Set fso = CreateObject("Scripting.FileSystemObject")
Set FileOut = fso.OpenTextFile( ZielDatei, 8, true)
fileOut.WriteLine (username)

bye
Karo
76976
76976 31.03.2009 um 12:57:16 Uhr
Goto Top
Danke
Hat super funktioniert ;)
Danke für die schnelle Antwort

MfG Pepper
bastla
bastla 31.03.2009 um 13:28:22 Uhr
Goto Top
... und falls es etwas kompakter sein soll:
ZielDatei = "c:\DateiName.txt"  
username=InputBox ("Please enter your Username:","Input","Username")  
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZielDatei, True).WriteLine username  
Den Einzeiler
CreateObject("Scripting.FileSystemObject").CreateTextFile("c:\DateiName.txt", True).WriteLine InputBox ("Please enter your Username:","Input","Username")
würde ich aber selbst nicht verwenden face-wink (außer vielleicht in einem Batch) ...

Grüße
bastla
76976
76976 31.03.2009 um 18:43:28 Uhr
Goto Top
Och man -.-
ein anderes Programm soll die txt auslesen und das in eine variable schreiben was da drin steht !!!
aber leider +berschreibt diese batch immer das was in der ersten zeile steht und dann in der variable steht mit dem was in der nächsten zeile steht
und dieses vbs springt leider in die nächste zeile um .. dh ich hab in meine batch variable imma NICHTS stehen
kann man nicht in das vbs schreiben dass es keine zeilenumbruch machen soll??
danke im vorraus
Pepper
bastla
bastla 31.03.2009 um 18:45:38 Uhr
Goto Top
Hallo Pepper-jk!
kann man nicht in das vbs schreiben dass es keine zeilenumbruch machen soll??
Einfach nur "Write" anstelle von "WriteLine" verwenden ...

Grüße
bastla
76976
76976 31.03.2009 um 19:00:37 Uhr
Goto Top
Danke Bastla
Der Zeilenumbruch ist weg aber es geht immer noch net - ich glaube es hat was mit dem "delims=" zu tun..
hier mein Wuelltext von der eben genannten Batch:

REM Zwischenschritt) ggf Dateien löschen
REM =======================================================================
del /S D:\index\input

REM Schritt 1) Start der Eingabe
REM =======================================================================
start Usernameinput.vbs
start Pnoinput.vbs
start Rightinput.vbs
start Folderinput.vbs
pause

REM Schritt 2) Variablen festlegen
REM =======================================================================
for /f "delims=" %%i in (D:\index\LW.txt) do set LW = %%i
for /f "delims=" %%i in (D:\index\input\pnoinput.txt) do set pno = %%i
set project = project %pno%
for /f "delims=" %%i in (D:\index\input\rightinput.txt) do set right = %%i
for /f "delims=*" %%i in (D:\index\input\folderinput.txt) do set folder = %%i
set group = P %pno% %folder% %right%
set groupwr = P %pno% %folder%
for /f "delims=" %%i in (D:\index\input\userinput.txt) do set user = %%i

echo %LW%
echo %pno%
echo %right%
echo %folder%
echo %user%
pause

REM Zwischenschritt) AddUser, AddGroup, AddUserToGroup, CreatFolder
REM =======================================================================
net user /add %user%
net localgroup /add %group%
net localgroup %group% %user% /add
set foldername = %LW%\ftproot\%project%\%folder%
md %foldername%

REM Schritt 3) GiveRightsToGroups
REM =======================================================================
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%M:C
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%W:RWx
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%R:RX
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%L:C:FO

pause

mein Problem liegt nur bei den for schleifen glaube ich, wenn anderswo noch ein fehler ist sagt aber trozdem bescheid xD

MfG Pepper
bastla
bastla 31.03.2009 um 19:58:25 Uhr
Goto Top
Hallo Pepper-jk!

Solltest Du nicht einen besonderen Grund für das Zwischenspeichern in einer Textdatei haben, wäre es einfacher, aus dem VBScript auf die folgende Art Daten an einen Batch zu übergeben:

Script:
WScript.Echo InputBox("Please enter your Username:","Input","Username")
Batch:
for /f "delims=" %%i in ('cscript //nologo Usernameinput.vbs') do set "user=%%i"
oder überhaupt gleich das Script durch den Batch erzeugen zu lassen (so kannst Du sicher sein, dass das Script da ist, wo Du es brauchst):
@echo off & setlocal
set U=%temp%\Usernameinput.vbs
>%U% echo WScript.Echo InputBox("Please enter your Username:","Input","Username")  
for /f "delims=" %%i in ('cscript //nologo %U%') do set "user=%%i"  
echo You entered: "%user%"  
Grüße
bastla
76976
76976 31.03.2009 um 20:24:59 Uhr
Goto Top
Hallo ich habe die erste Möglichkeit genommen (weil ich diese wenigstens verstanden habe)
doch es funktionier leider immer noch nicht ... entweder steht in den Varablen nichts dirn oder sie werden nicht erkannt ...

Meine "startindex.bat" :

REM Schritt 1) Variablen festlegen
REM =======================================================================
for /f "delims=" %%i in (D:\index\LW.txt) do set LW = %%i
for /f "delims=" %%i in ('cscript nologo Usernameinput.vbs') do set "user=%%i"
for /f "delims=" %%i in ('cscript
nologo Rightinput.vbs') do set "right=%%i"
for /f "delims=" %%i in ('cscript nologo Folderinput.vbs') do set "folder=%%i"
for /f "delims=" %%i in ('cscript
nologo Pnoinput.vbs') do set "pno=%%i"
set project = project %pno%
set group = P %pno% %folder% %right%
set groupwr = P %pno% %folder%

echo %LW%
echo %pno%
echo %right%
echo %folder%
echo %user%
pause

REM Zwischenschritt) AddUser, AddGroup, AddUserToGroup, CreatFolder
REM =======================================================================
net user /add %user%
net localgroup /add %group%
net localgroup %group% %user% /add
set foldername = %LW%\ftproot\%project%\%folder%
md %foldername%

REM Schritt 2) GiveRightsToGroups
REM =======================================================================
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%M:C
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%W:RWx
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%R:RX
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%L:C:FO

pause

Die echos sind nur um zu schauen ob die Variablen funktionieren, aber nich einmal die echos macht er !

Ein Beispiel meiner ".vbs":
ZielDatei = "D:\index\input\folderinput.txt"
foldername=InputBox ("Please enter your Foldername:","Input","Foldername")

habe ich vllt hier was falsch gemacht?
MfG Pepper
bastla
bastla 31.03.2009 um 20:56:27 Uhr
Goto Top
Hallo Pepper-jk!

Das Script muss die Daten per "WScript.Echo" ausgeben - nur so kann der Batch diese Ausgabe übernehmen:
foldername=InputBox ("Please enter your Foldername:","Input","Foldername")  
WScript.Echo foldername
Grüße
bastla

P.S.: Sollte Dir die Darstellungsform meiner Code-Schnipsel gefallen:
76976
76976 01.04.2009 um 08:02:53 Uhr
Goto Top
Danke Bastla
leider funktioniert das mit der Erkennung der aus variablen zusammengesetzten Strings die in den neuen variablen stehen nicht -.- (Zeilen 7-9)

REM Schritt 1) Variablen festlegen
REM =======================================================================
for /f "delims=" %%i in ('cscript //nologo Usernameinput.vbs') do set "user=%%i"  
for /f "delims=" %%i in ('cscript //nologo Rightinput.vbs') do set "right=%%i"  
for /f "delims=" %%i in ('cscript //nologo Folderinput.vbs') do set "folder=%%i"  
for /f "delims=" %%i in ('cscript //nologo Pnoinput.vbs') do set "pno=%%i"  
set project = "project%pno%"  
set group = "P%pno%%folder%%right%"  
set groupwr = "P%pno%%folder%"  

REM Zwischenschritt) AddUser, AddGroup, AddUserToGroup, CreatFolder
REM =======================================================================
net user /add %user%
net localgroup %group% /add
net localgroup %group% %user% /add
set foldername = %LW%\ftproot\%project%\%folder%
md %foldername%

REM Schritt 2) GiveRightsToGroups
REM =======================================================================
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%M:C
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%W:RWx
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%R:RX
FILEACL %LW%\ftproot\%project%\%folder% /S %groupwr%L:C:FO

pause

Hoffe auf schnelle antwort

MfG Pepper
76976
76976 01.04.2009 um 08:49:37 Uhr
Goto Top
ok das Problem hat sich gelöst ;)
anscheind kann Batch keine Variablen in Variablen schreiben -> ich hab jetzt das was in den Varibelne von 7-9 stehen sollte einfach überall hingeschrieben wo die Variable stehen sollte:

REM Schritt 1) Variablen festlegen
REM =======================================================================
for /f "delims=" %%i in ('cscript //nologo Usernameinput.vbs') do set "user=%%i"  
for /f "delims=" %%i in ('cscript //nologo Rightinput.vbs') do set "right=%%i"  
for /f "delims=" %%i in ('cscript //nologo Folderinput.vbs') do set "folder=%%i"  
for /f "delims=" %%i in ('cscript //nologo Pnoinput.vbs') do set "pno=%%i"  

REM Zwischenschritt) AddUser, AddGroup, AddUserToGroup, CreatFolder
REM =======================================================================
net user %user% /add
net localgroup P%pno%%folder%M /add
net localgroup P%pno%%folder%W /add
net localgroup P%pno%%folder%R /add
net localgroup P%pno%%folder%L /add
net localgroup P%pno%%folder%%right% %user% /add
md D:\ftproot\project%pno%\%folder%

REM Schritt 2) GiveRightsToGroups
REM =======================================================================
FILEACL D:\ftproot\project%pno%\%folder% /S P%pno%%folder%M:C
FILEACL D:\ftproot\project%pno%\%folder% /S P%pno%%folder%W:RWx
FILEACL D:\ftproot\project%pno%\%folder% /S P%pno%%folder%R:RX
FILEACL D:\ftproot\project%pno%\%folder% /S P%pno%%folder%L:C:FO

pause

MfG Pepper
Karo
Karo 01.04.2009 um 12:32:46 Uhr
Goto Top
Hi,

vielleicht hättest Du einfach die Anführungszeichen beim set ... weglassen sollen ....

zb.
do set "folder=%%i" => do set folder=%%i
oder
set project = "project%pno%" => set project =project%pno%

bye

Karo
76976
76976 01.04.2009 um 13:10:26 Uhr
Goto Top
Hi Karo
hatte ich schon probiert aber troz danke ;)

MfG Pepper
Jwanner83
Jwanner83 02.12.2016 um 13:15:42 Uhr
Goto Top
Hei Karo

Ich bring es irgendwie nicht hin, zwei solche Inputboxen hintereinander hin zu setzen. Ich möchte einmal den Username und danach das Passwort. Ich bringe es nicht hin. Kannst du mir da Helfen?

Lg Jonas
131381
131381 02.12.2016 aktualisiert um 13:41:51 Uhr
Goto Top
Zitat von @Jwanner83:
Ich bring es irgendwie nicht hin, zwei solche Inputboxen hintereinander hin zu setzen. Ich möchte einmal den Username und danach das Passwort. Ich bringe es nicht hin. Kannst du mir da Helfen?
@echo off & setlocal

call :makeinput "Bitte geben sie Ihren Usernamen ein." "user"  
call :makeinput "Bitte geben sie Ihr Passwort ein." "password"  

echo "%user%"  
echo "%password%"  

goto :eof

:: Subroutine zur Abfrage mit einer Inputbox
:makeinput
echo wscript.echo InputBox^("%~1","Eingabe"^)>"%temp%\exec.vbs"  
for /f "delims=" %%a in ('cscript //NOLOGO "%temp%\exec.vbs"') do set "%~2=%%a"  
goto :eof
Oder besser gleich mit einem "richtigen" Passwortdialog:
@echo off & setlocal
for /f "tokens=1,* delims=:" %%a in ('powershell -ExecutionPolicy ByPass -NoLogo -NoProfile -command "$cred = Get-Credential -Message 'Ihre Anmeldedaten'; ($cred.Username + ':' + $cred.GetNetworkCredential().Password)"') do set "user=%%a" & set "password=%%b"  
echo "%user%"  
echo "%password%"  
Gruß