Wenn ein umgekehrter Schrägstrich Teil der Callout-Befehlszeile ist, verdoppelt Site Recovery Manager alle umgekehrten Schrägstriche.

Problem

Der Systeminterpreter für die Befehlszeile behandelt doppelte umgekehrte Schrägstriche nur in Dateipfaden als einfache umgekehrte Schrägstriche. Wenn der Callout-Befehl einen umgekehrten Schrägstrich in einem anderen Parameter als dem Dateipfad benötigt und doppelte umgekehrte Schrägstriche vom Befehl nicht in einfache umgekehrte Schrägstriche umgewandelt werden, wird die Ausführung des Callout-Befehls möglicherweise mit einem Fehler beendet.

Als Beispiel können Sie dem Workflow einen Callout-Schritt hinzufügen und den folgenden Text als Befehl eingeben:

c:\Windows\system32\cmd.exe /C "C:\myscript.cmd" a/b/c \d\e\f \\g\\h c:\myscript.log

Als Ergebnis des Callout-Schritts führt Site Recovery Manager den folgenden Befehl aus:

c:\\Windows\\system32\\cmd.exe /C "C:\\myscript.cmd" a/b/c \\d\\e\\f \\\\g\\\\h c:\\myscript.log

Wenn der doppelte umgekehrte Schrägstrich nicht durch myscript.cmd in einen einfachen umgekehrten Schrägstrich geändert wird und bei den Parametern \d\e\f und \\g\\h die Anzahl der umgekehrten Schrägstriche berücksichtigt wird, schlägt myscript.cmd möglicherweise fehl.

Prozedur

  1. Erstellen Sie eine weitere Befehlszeilen-Batchdatei, die Befehle und alle erforderlichen Parameter enthält. Der Callout-Schritt führt diese zusätzliche Batchdatei ohne ein Argument aus. Die folgende Lösung ist beispielsweise möglich:
    1. Erstellen Sie in einem Texteditor wie dem Windows-Editor die Datei c:\SRM_callout.cmd mit dem folgenden Inhalt: C:\myscript.cmd a/b/c \d\e\f \\g\\h c:\myscript.log
    2. Geben Sie in einem Callout-Schritt des Wiederherstellungsplans diesen auszuführenden Befehl ein: c:\\Windows\\system32\\cmd.exe /C c:\SRM_callout.cmd
  2. Fügen Sie einen Code zur ursprünglichen Skriptdatei hinzu, durch den die doppelten umgekehrten Schrägstriche durch einfache umgekehrte Schrägstriche ersetzt werden.
    1. Fügen Sie einen Code ähnlich dem folgenden Beispiel an den Anfang der Skriptdatei c:\myscript.cmd ein.
      @echo off
      set arg2=%2
      set arg3=%3
      set fixed_arg2=%arg2:\\=\%
      set fixed_arg3=%arg3:\\=\%
      

      Wenn Sie den Umschalt-Befehl in einem Skript einsetzen, werden alle Parameter mit doppelten umgekehrten Schrägstrichen auf diese Weise gehandhabt.

    2. Wenn Sie den Umschalt-Befehl in einem Skript verwenden, nehmen Sie die folgenden Änderungen vor:

      Ersetzen Sie %2 durch %fixed_arg2%.

      Ersetzen Sie %3 durch %fixed_arg3%.

    3. Ändern Sie nicht den Befehl des Callout-Schritts.