如果反斜線是圖說文字命令列的一部分,則 Site Recovery Manager 會使所有反斜線變為雙反斜線。

問題

命令列系統解譯器僅將檔案路徑中的雙反斜線視為單一反斜線。如果圖說文字命令要求在參數 (而非檔案路徑) 中包含反斜線,但該命令未將雙反斜線轉換為單一反斜線,則圖說文字命令可能會失敗並顯示錯誤。

例如,您可以將圖說文字步驟新增至工作流程,然後輸入下列文字做為命令:

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

由於圖說文字步驟,Site Recovery Manager 將執行下列命令:

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

如果 myscript.cmd 未將雙反斜線變為單反斜線,且參數 \d\e\f\\g\\h 易受反斜線數目的影響,則 myscript.cmd 會失敗。

程序

  1. 建立額外的命令列批次檔以包含命令和所有必要的參數。圖說文字步驟將執行這個額外的批次檔,無需任何引數。例如,解決方案如下:
    1. 在文字編輯器 (例如 Notepad) 中,建立包含下列內容的檔案 c:\SRM_callout.cmdC:\myscript.cmd a/b/c \d\e\f \\g\\h c:\myscript.log
    2. 在復原計劃圖說文字步驟中,輸入要執行的命令: c:\\Windows\\system32\\cmd.exe /C c:\SRM_callout.cmd
  2. 將程式碼新增至將雙反斜線取代為單反斜線的原始指令碼檔案中。
    1. 將程式碼新增至開頭部分類似於以下範例的指令碼檔案 c:\myscript.cmd 中。
      @echo off
      set arg2=%2
      set arg3=%3
      set fixed_arg2=%arg2:\\=\%
      set fixed_arg3=%arg3:\\=\%
      

      如果在指令碼中使用 Shift 命令,所有區分反斜線的參數都將以這種方式進行處理。

    2. 如果在指令碼中未使用 Shift 命令,請進行以下變更:

      %2 取代為 %fixed_arg2%

      %3 取代為 %fixed_arg3%

    3. 請勿變更圖說文字步驟命令。