Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Vbs in batch schreiben

Frage Entwicklung Batch & Shell

Mitglied: DONNobre

DONNobre (Level 1) - Jetzt verbinden

15.06.2011, aktualisiert 20:15 Uhr, 3903 Aufrufe, 15 Kommentare

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.

01.
  
02.
set DOWN2=%TEMP%\download.cmd 
03.
set DOWN3=%TEMP%\download.vbs 
04.
			echo set shell = CreateObject("Wscript.Shell")>"%DOWN3%" 
05.
			echo shell.run "%DOWN2%",0 >>"%DOWN3%"
Mitglied: 60730
15.06.2011 um 20:02 Uhr
Servus,

Du mußt besonderezeichen maskieren.

 
C:\>echo ^>123 
>123 
 
C:\>
...und dann ...

echo 123>abc
statt
echo 123 > abc

Leerezeichen sind auch Zeichen

Gruß
edit,
da du via Edit Code Blöcke spendiert hast, spensiere ich auch was...
/edit

01.
set DOWN2=%TEMP%\download.cmd 
02.
set DOWN3=%TEMP%\download.vbs 
03.
echo set shell = CreateObject("Wscript.Shell")>"%DOWN3%" 
04.
echo shell.run "%DOWN2%"^,^0>>"%DOWN3%"
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 20:19 Uhr
bei mir bleibt das problem bestehen
das ) in der 3ten Zeile wird nicht in die batch geschrieben
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 20:22 Uhr
Hi DONNobre,

oder Du schreibst (übersichtlicher) gleich
01.
> "%DOWN3%" echo Set Shell = CreateObject("WScript.Shell") 
02.
>>"%DOWN3%" echo Shell.Run "%DOWN2%", 0
Dann klappt's auch mit dem ).

Gruß
Friemler
Bitte warten ..
Mitglied: 60730
15.06.2011 um 20:22 Uhr
Salü,
01.
set DOWN2=%TEMP%\download.cmd 
02.
set DOWN3=%TEMP%\download.vbs 
03.
echo set shell = CreateObject("Wscript.Shell")> "%DOWN3%" 
04.
echo shell.run "%DOWN2%"^,^0>>"%DOWN3%" 
05.
type "%DOWN3%" 
06.
pause
ergibt bei mir...

 
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
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 20:26 Uhr
das hatte ich auch schon ausprobiert .. hattest das ja auch letztes mal verwendet in dem autostart script .... aber leider geht das auch nicht
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 20:36 Uhr
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 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
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 20:38 Uhr
kopiert ... eingefügt
ging nicht ... lehrzeichen am ende rausgenommen
ging nicht

aber mir ist gerade ne andere idee gekommen kann es sein das er das zeichen nicht nehmen will weil es in der For schleife ist ?
01.
 
02.
:ncftpput 
03.
set DOWN=%TEMP%\download.txt 
04.
set DOWN2=%TEMP%\download.cmd 
05.
set DOWN3=%TEMP%\download.vbs 
06.
del %DOWN% & %DOWN2% & %DOWN3% 
07.
if exist "%TEMP%\ncftpput.exe" ( 
08.
	set FTPProgramm="%TEMP%\ncftpput.exe" 
09.
	if "%counter%" EQU "%maxCounter%" goto EOL 
10.
) else ( 
11.
			echo OPEN %FTPAdress%>>%DOWN% 
12.
			echo USER %FTPUser%>>%DOWN% 
13.
			echo %FTPPsw%>>%DOWN% 
14.
			echo BIN>>%DOWN% 
15.
			echo LCD c:\>>%DOWN% 
16.
			echo GET ncftpput.exe>>%DOWN% 
17.
			echo GET Ftpsend.exe>>%DOWN% 
18.
			echo GET DatenAufFTPkopieren.cmd>>%DOWN% 
19.
			echo quit>>%DOWN% 
20.
			echo c:>>%DOWN2% 
21.
			echo cd\>>%DOWN2% 
22.
			echo ftp -n -s:c:download.txt>>%DOWN2% 
23.
 
24.
echo set shell = CreateObject("Wscript.Shell")> "%DOWN3%" 
25.
echo shell.run "%DOWN2%"^,^0>>"%DOWN3%" 
26.
 
27.
			call "%DOWN3%" 
28.
			set /a Counter=%Counter% + 1 
29.
			ping localhost -n 10 >NUL 
30.
31.
goto :EOL 
32.
 
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 20:56 Uhr
Tja, wenn Du die richtige Codeformatierung verwendet hättest (mit < und > statt den runden Klammern), hätte ich viel mehr Lust das zu analysieren... Ich finde nämlich keine FOR-Schleife in der Bleiwüste da oben.
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 21:01 Uhr
hab ich doch schon gemacht mein rechner hing nur und ich kamm nicht so schnell hinterher
Bitte warten ..
Mitglied: Friemler
15.06.2011 um 21:05 Uhr
AHHH, besser!

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
Bitte warten ..
Mitglied: 60730
15.06.2011 um 21:06 Uhr
moinsen,

... na dann....
bei den ganzen downs geht man ja downunder....
01.
:ncftpput 
02.
set DOWN=%TEMP%\download 
03.
del %DOWN%.* 
04.
echo %TEMP% 
05.
if exist "%TEMP%\ncftpput.exe" ( 
06.
              set FTPProgramm="%TEMP%\ncftpput.exe" 
07.
              if "%counter%" EQU "%maxCounter%" goto EOL 
08.
) else ( 
09.
            echo OPEN %FTPAdress%>>%DOWN%.txt 
10.
            echo USER %FTPUser%>>%DOWN%.txt 
11.
            echo %FTPPsw%>>%DOWN%.txt 
12.
            echo BIN>>%DOWN%.txt 
13.
            echo LCD c:\>>%DOWN%.txt 
14.
            echo GET ncftpput.exe>>%DOWN%.txt 
15.
            echo GET Ftpsend.exe>>%DOWN%.txt 
16.
            echo GET DatenAufFTPkopieren.cmd>>%DOWN%.txt 
17.
            echo quit>>%DOWN%.txt 
18.
            echo c:>>%DOWN%.cmd 
19.
            echo cd\>>%DOWN%.cmd 
20.
            echo ftp -n -s:c:download.txt>>%DOWN%.cmd 
21.
            echo set shell = CreateObject("Wscript.Shell")> "%DOWN%.vbs" 
22.
            echo shell.run "%DOWN%"^,^0>>"%DOWN%.vbs" 
23.
            type "%DOWN3%.vbs" 
24.
            call "%DOWN3%.vbs" 
25.
            set /a Counter=%Counter% + 1 
26.
            ping localhost -n 10 >NUL 
27.
28.
goto :EOL
edit too late, hat er ja schon...
apropos late ich geh heim...
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 21:19 Uhr
die version ist schöner ... es wird leider an anderen stellen noch meine version von DOWN1-3 verwendet deswegen kann ich das leider so nicht machen ... aber danke ...
das mit den klammern hätte mir auch früher einfallen können
Bitte warten ..
Mitglied: mathe172
15.06.2011 um 22:23 Uhr
Hallo,

und damit ich auch noch was gesagt habe :
01.
02.
            echo.OPEN %FTPAdress% 
03.
            echo.USER %FTPUser% 
04.
            echo.%FTPPsw% 
05.
            echo.BIN 
06.
            echo.LCD c:\ 
07.
            echo.GET ncftpput.exe 
08.
            echo.GET Ftpsend.exe 
09.
            echo.GET DatenAufFTPkopieren.cmd 
10.
            echo.quit 
11.
            )>>%DOWN%.txt 
12.
13.
            echo.c: 
14.
            echo.cd\ 
15.
            echo.ftp -n -s:c:download.txt 
16.
            )>>%DOWN%.cmd 
17.
18.
            echo.set shell = CreateObject^("Wscript.Shell"^) 
19.
            echo.shell.run "%DOWN%"^,^0 
20.
            )>"%DOWN%.vbs"
Finde ich etwas schöner (. nach echo und nur einmal umleiten pro Datei-ist auch bei Änderungen schneller...)

Mathe172
Bitte warten ..
Mitglied: DONNobre
15.06.2011 um 22:34 Uhr
das finde ich auch sehr schön ... einfach und schnell zu ändern
Bitte warten ..
Mitglied: pieh-ejdsch
15.06.2011 um 23:39 Uhr
moin,

und wenn Du noch ein paar SonderZeichen nicht gleich findest macht es dieses hier etwas leichter.

Sonder Zeichen Nach Echo.cmd

Gruß Phil
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
gelöst Batch-Skript oder VBS Skript zum Sichern von Office Vorlagen (2)

Frage von Ceejaay zum Thema Windows 7 ...

Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...