Vbs in batch schreiben
Hallo zusammen ich habe ein problem eine vbs datei in eine batch zu schreiben,
habe auch schon mehrere varianten ausprobiert lehrzeichen und >
Problem macht mir dieses ) zeichen es wird einfach nicht in die batch geschrieben.
habe auch schon mehrere varianten ausprobiert lehrzeichen und >
Problem macht mir dieses ) zeichen es wird einfach nicht in die batch geschrieben.
set DOWN2=%TEMP%\download.cmd
set DOWN3=%TEMP%\download.vbs
echo set shell = CreateObject("Wscript.Shell")>"%DOWN3%"
echo shell.run "%DOWN2%",0 >>"%DOWN3%"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 168077
Url: https://administrator.de/contentid/168077
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
15 Kommentare
Neuester Kommentar
Servus,
Du mußt besonderezeichen maskieren.
...und dann ...
Leerezeichen sind auch Zeichen
Gruß
edit,
da du via Edit Code Blöcke spendiert hast, spensiere ich auch was...
/edit
Du mußt besonderezeichen maskieren.
C:\>echo ^>123
>123
C:\>
...und dann ...
echo 123>abc
stattecho 123 > abc
Leerezeichen sind auch Zeichen
Gruß
edit,
da du via Edit Code Blöcke spendiert hast, spensiere ich auch was...
/edit
set DOWN2=%TEMP%\download.cmd
set DOWN3=%TEMP%\download.vbs
echo set shell = CreateObject("Wscript.Shell")>"%DOWN3%"
echo shell.run "%DOWN2%"^,^0>>"%DOWN3%"
Salü,
ergibt bei mir...
@ Friemler - oder so, wobei ich kein Thema mit der Klammer, sondern mit dem Komma hatte....
XP SP3
set DOWN2=%TEMP%\download.cmd
set DOWN3=%TEMP%\download.vbs
echo set shell = CreateObject("Wscript.Shell")> "%DOWN3%"
echo shell.run "%DOWN2%"^,^0>>"%DOWN3%"
type "%DOWN3%"
pause
C:\script\test>set DOWN2=C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.cmd
C:\script\test>set DOWN3=C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.vbs
C:\script\test>echo set shell = CreateObject("Wscript.Shell") 1>"C:\DOKUME~1\timo.beil
\LOKALE~1\Temp\download.vbs"
C:\script\test>echo shell.run "C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.cmd",0 1>>
"C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.vbs"
C:\script\test>type "C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.vbs"
set shell = CreateObject("Wscript.Shell")
shell.run "C:\DOKUME~1\timo.beil\LOKALE~1\Temp\download.cmd",0
C:\script\test>pause
Drücken Sie eine beliebige Taste . . .
@ Friemler - oder so, wobei ich kein Thema mit der Klammer, sondern mit dem Komma hatte....
XP SP3
Hallo DONNobre,
also bei mir funktioniert es, Dein ursprünglicher Code hat ja auch bei T-Mo funktioniert. Da muss in Deinem Code noch irgendein unsichtbares Zeichen vorhanden sein. Kopiere Dir doch mal den Code von T-Mo oder mir über den
Wenn wir dabei sind, auch wenn das bestimmt nichts mit Deinem Problem zu tun hat: Speichere Batchcode immer unter der Codierung OEM850 ab (läßt sich in Notpad++ einstellen). Dann wird der Text in ASCII-Codierung gespeichert, normalerweise in ANSI-Codierung, was bei
Gruß
Friemler
also bei mir funktioniert es, Dein ursprünglicher Code hat ja auch bei T-Mo funktioniert. Da muss in Deinem Code noch irgendein unsichtbares Zeichen vorhanden sein. Kopiere Dir doch mal den Code von T-Mo oder mir über den
Quelltext
-Link am oberen rechten Rand der Code-Boxen in Deinen Editor.Wenn wir dabei sind, auch wenn das bestimmt nichts mit Deinem Problem zu tun hat: Speichere Batchcode immer unter der Codierung OEM850 ab (läßt sich in Notpad++ einstellen). Dann wird der Text in ASCII-Codierung gespeichert, normalerweise in ANSI-Codierung, was bei
äöüßÄÖÜ
zu Zeichensalat bei der Ausgabe auf der Konsole führt.Gruß
Friemler
AHHH, besser!
Ja, der
BTW: Verringere und vereinheitliche doch bitte in Zukunft die Tiefe der Einrückungen, sieht ja zum fürchten aus.
Gruß
Friemler
Ja, der
ECHO
-Befehl zum schreiben der problematischen Zeile steht in einem geklammerten ELSE
-Block, dafür ist Batchscript wieder mal zu dumm. Du musst die Klammern "escapen", indem Du ein ^
davor schreibst.BTW: Verringere und vereinheitliche doch bitte in Zukunft die Tiefe der Einrückungen, sieht ja zum fürchten aus.
Gruß
Friemler
moinsen,
... na dann....
bei den ganzen downs geht man ja downunder....
edit too late, hat er ja schon...
apropos late ich geh heim...
... na dann....
bei den ganzen downs geht man ja downunder....
:ncftpput
set DOWN=%TEMP%\download
del %DOWN%.*
echo %TEMP%
if exist "%TEMP%\ncftpput.exe" (
set FTPProgramm="%TEMP%\ncftpput.exe"
if "%counter%" EQU "%maxCounter%" goto EOL
) else (
echo OPEN %FTPAdress%>>%DOWN%.txt
echo USER %FTPUser%>>%DOWN%.txt
echo %FTPPsw%>>%DOWN%.txt
echo BIN>>%DOWN%.txt
echo LCD c:\>>%DOWN%.txt
echo GET ncftpput.exe>>%DOWN%.txt
echo GET Ftpsend.exe>>%DOWN%.txt
echo GET DatenAufFTPkopieren.cmd>>%DOWN%.txt
echo quit>>%DOWN%.txt
echo c:>>%DOWN%.cmd
echo cd\>>%DOWN%.cmd
echo ftp -n -s:c:download.txt>>%DOWN%.cmd
echo set shell = CreateObject("Wscript.Shell")> "%DOWN%.vbs"
echo shell.run "%DOWN%"^,^0>>"%DOWN%.vbs"
type "%DOWN3%.vbs"
call "%DOWN3%.vbs"
set /a Counter=%Counter% + 1
ping localhost -n 10 >NUL
)
goto :EOL
apropos late ich geh heim...
Hallo,
und damit ich auch noch was gesagt habe :
Finde ich etwas schöner (. nach echo und nur einmal umleiten pro Datei-ist auch bei Änderungen schneller...)
Mathe172
und damit ich auch noch was gesagt habe :
(
echo.OPEN %FTPAdress%
echo.USER %FTPUser%
echo.%FTPPsw%
echo.BIN
echo.LCD c:\
echo.GET ncftpput.exe
echo.GET Ftpsend.exe
echo.GET DatenAufFTPkopieren.cmd
echo.quit
)>>%DOWN%.txt
(
echo.c:
echo.cd\
echo.ftp -n -s:c:download.txt
)>>%DOWN%.cmd
(
echo.set shell = CreateObject^("Wscript.Shell"^)
echo.shell.run "%DOWN%"^,^0
)>"%DOWN%.vbs"
Finde ich etwas schöner (. nach echo und nur einmal umleiten pro Datei-ist auch bei Änderungen schneller...)
Mathe172
moin,
und wenn Du noch ein paar SonderZeichen nicht gleich findest macht es dieses hier etwas leichter.
Sonder Zeichen Nach Echo.cmd
Gruß Phil
und wenn Du noch ein paar SonderZeichen nicht gleich findest macht es dieses hier etwas leichter.
Sonder Zeichen Nach Echo.cmd
Gruß Phil