boogieman
Goto Top

Sicherungsscript II mit Batch

Hallo face-smile
Jetzt bin ich mit dem ersten teil meines Scriptes fast fertig und es funktioniert dank euch soweit super face-smile

Doch wenn ich jetzt meine URL einfüge versucht er aus dieser befehle zu machen, kann durch einen Parameter angeben das der die Eingabe so wie sie ist übernimmt? Also nach nichts sucht sonder das was eingegeben wird so weiter gibt?

Hier das Script:

set /P url=welche URL soll aufgerufen werden? http://
echo http://%url%>URL.txt
pause


cls
echo -----------------------------
echo dieser link wird aufgerufen
echo  -                          
echo %url%
echo  -
set /p antw=Ist dieser Link richtig? (j/n)
if /i "%antw%" == "j" goto :ja  
if /i "%antw%" == "n" goto :nein  




:nein
cls
set /P url=welche URL soll aufgerufen werden? http://
echo  -                          
echo %url%
echo  -
set /p antw=Ist dieser Link richtig? (j/n)
if /i "%antw%" == "j" goto ja  
if /i "%antw%" == "n" goto nein  
pause

:ja
cls
echo Sicherung wird gestartet
set/p "url1="<"URL.txt"  
start %url1%
timeout 100
del URL.txt
pause
exit

Er übergibt eben die URL in eine temporäre Datei die dann wieder gelöscht wird und soll aus dieser auslesen weil ich mir ebn erhofft hatte, das der dann die eingabe als einfache variable und nicht als Befehlsstruktur sieht.

Danke schon einmal für jede Antwort, auch für jeden Tipp bin ich dankbar

Content-Key: 241834

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

Printed on: April 25, 2024 at 21:04 o'clock

Member: bastla
bastla Jun 25, 2014 at 13:08:02 (UTC)
Goto Top
Hallo Boogieman und willkommen im Forum!

Kannst Du erklären, was Du mit der URL eigentlich vor hast? Da Du sie "startest" wird sie im Browser geöffnet ...

BTW: Das Zwischenspeichern in einer Datei sollte überhaupt nicht nötig sein.

Grüße
bastla
Member: Boogieman
Boogieman Jun 25, 2014 at 13:18:33 (UTC)
Goto Top
Hallo bastla face-smile

Ich betreue eine Joomla Webseite und möchte den Backup Prozess automatisieren. Mangels CroneJobs will ich es mit einer Batch und einer Frontend Sicherung machen. Daher soll das Programm die URL starten und im browser ausführen. Ich muss zugeben das das Zwischenspeichern der Variable wirklich nicht nötig ist da hast du recht. Aber ich bin gerade am lernen von Batch bzw. viel ausprobieren und möchte einfach so viel wie möglich testen :D
Wenn die URL ausgeführt wird, wird eine Sicherung erstellt. Diese wird gespeichert und dann soll eine batch Datei die eine Windows FTP Datei öffnet dieses Backup herunterladen und am besten eine alte Sicherung überschreiben.

Ich muss mir bloß noch überlegen wie ich das dann mit den Backupnamen mache... aber das später :d

Danke face-smile
Member: Gersen
Gersen Jun 25, 2014 updated at 13:35:58 (UTC)
Goto Top
Hallo,

versuch doch mal:

@echo off
set /P url=welche URL soll aufgerufen werden? http://
set url=http://%url% 

cls 
echo ----------------------------- 
echo dieser link wird aufgerufen 
echo  -                           
echo %url% 
echo  - 
set /p antw=Ist dieser Link richtig? (j/n) 

if /i "%antw%" == "j" goto ja   
if /i "%antw%" == "n" goto nein  
goto ende 

:nein 
cls 
set /P url=welche URL soll aufgerufen werden? http://
set url=http://%url% 
echo  -                           
echo %url% 
echo  - 
set /p antw=Ist dieser Link richtig? (j/n) 
if /i "%antw%" == "j" goto ja   
if /i "%antw%" == "n" goto nein  
goto ende 
 

:ja 
cls 
echo Sicherung wird gestartet 
start %url% 


:ende
echo Programmende 
pause
exit

Gruß,
Gersen
Member: Boogieman
Boogieman Jun 25, 2014 at 14:18:51 (UTC)
Goto Top
Hallo Gersen, Danke das du auch wieder dabei bist face-smile

ich habe das getestet, die Idee ist auch richtig gut doch sind bei dem Link da dieser sicher sein muss ... Umlaute und weiterleitungen vorhanden so ist dieser sehr lang also 3 cmd zeilen ich habe das was übergeben wird jetzt noch einmal in eine txt datei schreiben lassen und es ist leider nur der halbe link er hört bei einem "&" auf und beenden den Link somit ... Kann das an der Länge des Links liegen oder an dem Sodnerzeichen?

Wirklich vielen Dank
Member: Gersen
Solution Gersen Jun 25, 2014 updated at 16:19:38 (UTC)
Goto Top
I see... Die Länge des Variablenwertes ist nicht das Problem (solange Du unter 32767 Zeichen bleibst...) - es ist das Sonderzeichen. Versuch mal (geänderte Zeilen 3 und 20)

@echo off
set /P url=welche URL soll aufgerufen werden? http://
set url=http://%url:&=^^^&% 

cls 
echo ----------------------------- 
echo dieser link wird aufgerufen 
echo  -                           
echo %url% 
echo  - 
set /p antw=Ist dieser Link richtig? (j/n) 

if /i "%antw%" == "j" goto ja   
if /i "%antw%" == "n" goto nein  
goto ende 

:nein 
cls 
set /P url=welche URL soll aufgerufen werden? http://
set url=http://%url:&=^^^&% 
echo  -                           
echo %url% 
echo  - 
set /p antw=Ist dieser Link richtig? (j/n) 
if /i "%antw%" == "j" goto ja   
if /i "%antw%" == "n" goto nein  
goto ende 
 

:ja 
cls 
echo Sicherung wird gestartet 
start %url% 


:ende
echo programmende 
pause
exit

Gehts damit...?
Member: Boogieman
Boogieman Jun 25, 2014 at 16:19:32 (UTC)
Goto Top
Danke Gersen
das funktioniert

kannst du mir noch erklären was diese zeichen dann bedeuten?

:&=^^^&

danke sehr
Member: Gersen
Gersen Jun 25, 2014 at 16:40:19 (UTC)
Goto Top
Ich versuchs.

Es bedeutet: Ersetze in der Variablen alle "&" durch "^&".
Hintergrund: "&" ist ein Steuerzeichen. Um der Interpretation als solches zu entgehen, muss es maskiert werden. Maskiert wird durch vorangestelltes "^". Da das nun auch wieder ein Steuerzeichen darstellt, muss es ebenfalls maskiert werden. Daher kommt es zu dieser kryptischen Zeichenfolge.

Vielleicht noch besser erklärt - siehe hier.
Member: Boogieman
Boogieman Jun 25, 2014 at 16:48:49 (UTC)
Goto Top
super, vielen vielen dank
Das ist wirklich das Forum wo die User ahnung haben und nicht nur rum heulen (y)

Danke Gersen!