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

Schtask Aufruf mit Parameterübergabe

Frage Entwicklung Batch & Shell

Mitglied: ferdi1

ferdi1 (Level 1) - Jetzt verbinden

17.04.2007, aktualisiert 19.04.2007, 14229 Aufrufe, 9 Kommentare

Hallo,

ich habe da ein kleines Problem bei dem Versuch einen Task auf einem Remoterechner zu erstellen.
Es geht darum verschiedene Rechner zeitgesteuert zu sichern.
Dazu soll ein CMD-Script aus dem VErzeichnis c:\Program Files\Clientbackup mit dem Parameter "start" aufgerufen werden .

Ich habe ein Script geschrieben welches schtasks in der folgenden weise aufruft:


Set CliSnapRun="%ProgramFiles%\imagebackup\CliSnapUp.cmd start"
Schtasks /create /tn ClientSnapshot /tr %CliSnapRun% /sc weekly /mo 1 /d Mo /s mysystem


Ich erhalte jedoch immer eine Fehlermeldung, das "Start" kein gültiger Parameter sei.

Ich denke das ich den Pfad in irgendeiner weise "maskieren" muß, ich habe jedoch keine Ahnung wie.
Meine Versuche mit ^" usw. hatten leider keinen Erfolg.

Kann mir jemand weiterhelfen ?






Ich
Mitglied: bastla
17.04.2007 um 19:47 Uhr
Hallo ferdi1 und willkommen im Forum!

Das Einfachste drüfte es sein, eine weitere Batchdatei "CliSnapUpStart.cmd" mit dem Inhalt
01.
"%ProgramFiles%\imagebackup\CliSnapUp.cmd" start
zu erstellen und diese per geplantem Tast zu starten.

Grüße
bastla
Bitte warten ..
Mitglied: Rockfire
17.04.2007 um 20:13 Uhr
Hallo Ferdi1

Ich habe das bei mir gerade ausprobiert. Unter WinXP Sp2 funktioniert es.
Kannst du vielleicht noch ein paar Daten zu deinem System nennen?

Gruß

Rockfire
Bitte warten ..
Mitglied: Biber
17.04.2007 um 20:59 Uhr
Moin ferdi1,

Willkommen auch von mir.

...wenn Du die Anführungszeichen anders setzt, sollte es auch gehen..
01.
Set "CliSnapRun=%ProgramFiles%\imagebackup\CliSnapUp.cmd start" 
02.
Schtasks /create /tn ClientSnapshot /tr "%CliSnapRun%" /sc weekly /mo 1 /d Mo /s mysystem
Aber Rockfires Bitte finde ich auch berechtigt...

Und mir sei bitte die Nachfrage gestattet, WTF braucht den die CliSnapUp.cmd überhaupt einen Parameter?
Bzw. kennt die denn noch andere?
Den Zusatznutzen erkenne ich von hier aus nicht...

Gruss
Biber
Bitte warten ..
Mitglied: ferdi1
18.04.2007 um 10:45 Uhr
Hallo Ferdi1

Ich habe das bei mir gerade ausprobiert.
Unter WinXP Sp2 funktioniert es.
Kannst du vielleicht noch ein paar Daten zu
deinem System nennen?

Gruß

Rockfire

Hallo Rockfire,

ich habe ebebfalls XP mit SP2.
Aber bei mir funktioniert es nicht so wie erwartet.
Der Task wird zwar angelegt, aber das Problem ist der Pfad zum Program Directory, da dieser einen BLank enthällt.

Wenn ich mir die Eigenschaften des erstellten Tasks anschaue, sieht es bei mir so aus, das der Pfad nicht in "" eingeschlossen ist, und der Aufruf nicht funktioniert.


Viele Grüße
Ferdi1
Bitte warten ..
Mitglied: ferdi1
18.04.2007 um 11:10 Uhr
Moin ferdi1,

Willkommen auch von mir.

...wenn Du die Anführungszeichen anders
setzt, sollte es auch gehen..
01.
Set 
02.
> "CliSnapRun=%ProgramFiles%\imagebackup\CliSnapUp.cmd 
03.
> start" 
04.
> Schtasks /create /tn ClientSnapshot /tr 
05.
> "%CliSnapRun%" /sc weekly /mo 1 /d 
06.
> Mo /s mysystem 
07.
> 
Aber Rockfires Bitte finde ich auch
berechtigt...

Und mir sei bitte die Nachfrage gestattet,
WTF braucht den die CliSnapUp.cmd
überhaupt einen Parameter?
Bzw. kennt die denn noch andere?
Den Zusatznutzen erkenne
ich von hier aus nicht...

Gruss
Biber


Hallo Biber,

das Script CliSnapUp hat neben dem Parameter Start, auch weitere Parameter wie z.B. Install
welches mit dem AT -Befeht einen Task erstellt der dan Zeitgesteuert aufgerufen wird.
Wir haben hier eine gemischte Umgebung von Nt4 / W2K / XP Clients die möglichst automatisiert gesichert weden sollen.
Daher eben auch verschiedene Parameter bei dem Aufruf des Scriptes.

Ich könnte das Script mit den notwendigen Prametern natürlich auch aus einem anderen CMD heraus starten, was wohl die einfachste Lösung wäre.

Nach mehreren erfolglosen Versuchen diesen Aufruf mit der Übergabe der Parameter,
zu realisieren habe ich nach der korrekten Syntax für diesen Fall gesucht.

Ich weiß das man in so einem Fall eben "maskieren" muß, aber ich habe das irgendwie nie so richtig begriffen, wie das funktioniert mit dieser Maskerade.


Viele Grüße
Ferdi1
Bitte warten ..
Mitglied: Rockfire
18.04.2007 um 13:10 Uhr
Hy Ferdi1,

das erklärt das natürlich, das es bei mir funktionierte.

Wenn du so Probleme mit den Leerzeichen hast, die man(ich) häufig bei Batchdateien hat. Schon einmal überlegt die dateien einfach in einen anderen Ordner zu legen. Wir legen meist im Windowsverzeichnis einen Ordner Batch oder Script an.

Ansonsten kann ich dir leider nicht helfen. Tut mir leid. Aber ich bin mir sicher hier findet sich bestimmt noch eine Lösung für den Problem.

Gruß

Rockfire
Bitte warten ..
Mitglied: Biber
18.04.2007 um 21:22 Uhr
Moin Ferdi1 nochmal,

ich kann den Problem nicht reproduzieren.
Bei meinem "deutschen" SchTasks.exe funktionieren sowohl die oben von mir gepostete Syntax wie auch eine Variation wie z.B.

Schtasks ..../tr " "%ProgramFiles%\imagebackup\CliSnapUp.cmd" start"

(also ["Programm-in-Anfü-Zeichen" plus Parameter] nochmal in Anfü-Zeichen gepackt )

Hattest Du meine Variante oben ausprobiert?

[Hier auf WinXP Pro SP2 getestet]

Gruss
Biber
Bitte warten ..
Mitglied: Biber
18.04.2007 um 22:54 Uhr
Update.

Ziehe die letzte Frage zurück, denn inzwischen habe ich eine Antwort.
Vom sympathischen Weltmarktführer selbst.
Und ich gebe zu, so um die Ecke denken wie die Redmonder kann ich nicht...

Hier M$-KB 823093 stehts...

01.
For example, the following example task does not run when you schedule it:  
02.
schtasks /create /tn "my task" /tr "c:\foldername containing spaces\script.bat arguments" /sc once /sd 07/29/2003 /st 10:01 
03.
However, when you enclose the path of the task between the backslash and quotation marks character combinations as in the following example, the scheduled task runs successfully:  
04.
schtasks /create /tn "my task" /tr "\"c:\foldername name containing spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01
Krank, krank, krank...

Und es gibt auch noch einen weiteren, noch extremeren Workaround (der total unlogisch ist):
  • Das, was als "/TR"-Parameter dienen soll, in doppelte (=ein Paar von) Anführungszeichen packen, [ja, in ""]
  • zusätzlich JEDES Leerzeichen in Anführungszeichen verpacken
  • am Ende ZUSÄTZLICH noch ein Anführungszeichen anhängen

Auch wenn es mir keiner glauben wird...

Aufruf soll sein:
"c:\Eigene Dateien\Test.bat" mit Parameter 1 = start und Parameter 2 Dateiname
z.B.
"c:\Eigene Dateien\Test.bat" start "C:\Dies und Das\xyz.bla"
------->dann ist der an Schtasks übergebene /TR-Parameter:
01.
SchTasks ...... /TR """c:\Eigene" "Dateien\Test.bat" "start" "C:\Dies" "und" "Das\xyz.bla"""
*kopfschüttel*

Gottseidank will M$ ja mehr in Richtung "Entertainment-Rechner" gehen, hab ich gelesen.
Ich möchte auch nicht an einer Herz-Lungen-Maschine hängen, die unter M$-Betriebssytemen läuft.
Oder in einem Flugzeug mit Vi$ta-Autopilot mitfliegen....

Gruss
Biber
Bitte warten ..
Mitglied: ferdi1
19.04.2007 um 15:35 Uhr
Update.

Ziehe die letzte Frage zurück, denn
inzwischen habe ich eine Antwort.
Vom sympathischen Weltmarktführer
selbst.
Und ich gebe zu, so um die Ecke denken wie
die Redmonder kann ich nicht...

Hier
[http://support.microsoft.com/kb/823093/en-us
M$-KB 823093] stehts...

01.
For example, the following 
02.
> example task does not run when you schedule 
03.
> it:  
04.
> schtasks /create /tn "my task" /tr 
05.
> "c:\foldername containing 
06.
> spaces\script.bat arguments" /sc once 
07.
> /sd 07/29/2003 /st 10:01 
08.
> However, when you enclose the path of the 
09.
> task between the backslash and quotation 
10.
> marks character combinations as in the 
11.
> following example, the scheduled task runs 
12.
> successfully:  
13.
> schtasks /create /tn "my task" /tr 
14.
> "\"c:\foldername name containing 
15.
> spaces\script.bat\" arguments" /sc 
16.
> once /sd 07/29/2003 /st 10:01 
17.
> 
Krank, krank, krank...

Und es gibt auch noch einen weiteren, noch
extremeren Workaround (der total unlogisch
ist):
  • Das, was als "/TR"-Parameter
dienen soll, in doppelte
(=ein Paar von) Anführungszeichen
packen, [ja, in ""]
  • zusätzlich JEDES Leerzeichen in
Anführungszeichen verpacken
  • am Ende ZUSÄTZLICH noch ein
Anführungszeichen anhängen

Auch wenn es mir keiner glauben wird...

Aufruf soll sein:
"c:\Eigene Dateien\Test.bat" mit
Parameter 1 = start und Parameter 2
Dateiname
z.B.
> "c:\Eigene Dateien\Test.bat"
start "C:\Dies und Das\xyz.bla"
------->dann ist der an Schtasks
übergebene /TR-Parameter:
01.
SchTasks ...... /TR 
02.
> """c:\Eigene" 
03.
> "Dateien\Test.bat" 
04.
> "start" "C:\Dies" 
05.
> "und" 
06.
> "Das\xyz.bla""" 
07.
> 
*kopfschüttel*

Gottseidank will M$ ja mehr in Richtung
"Entertainment-Rechner" gehen, hab
ich gelesen.
Ich möchte auch nicht an einer
Herz-Lungen-Maschine hängen, die unter
M$-Betriebssytemen läuft.
Oder in einem Flugzeug mit Vi$ta-Autopilot
mitfliegen....

Gruss
Biber


Hallo Biber,

vielen Dank für die Hilfe, jetzt funktioniert's.
Aber wer soll bitte auf so eine Syntax kommen ?

Ist doch wirklich krank.


Viele Grüße
Ferdi1
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...