У меня есть i.a. переменные, такие как:escape-символы в переменных в пакетном скрипте
SET CURRHOST=myServer
SET CURRCOMPANY=myCompany
SET CURRDB=string!string=string!string=string
после того, как я установил эту переменную:
SET NAME=%CURRHOST%\%CURRCOMPANY%\%CURRDB%
Я также использовал переменные выше в других переменных. Но теперь моя проблема заключается в том, что сценарий считает, что моя переменная CURRDB является командой.
Я пытался бежать переменную как
SETLOCAL ENABLEDELAYEDEXPANSION
SET CURRDB=string^^!string^^=string^^!string^^=string
, а затем использовать эту переменную в других переменных с
!CURRDB!
Но это не работает. Он также удаляет! символ и строку между символом =.
Так как я могу избежать этих символов в переменной CURRDB.
EDIT:
, что я пытаюсь сделать exaktly:
SETLOCAL ENABLEDELAYEDEXPANSION
set CURRHOST=myServer
set CURRCOMPANY=myCompany
set CURRDBASE=string!string=string!string=string
set CURRSQLCMD="C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn"
set CURRFILETREE=E:\SWF_DBankBackup\MSSQL2012
После того как я использовать эти переменные obove для других переменных:
set DateiName=%CURRHOST%_%CURRDBASE%_BackupCurrent
set Backuppath=%CURRFILETREE%\%CURRCOMPANY%\%CURRDBASE%
set BackupSkript=%Backuppath%\BackupCurrentScript\%DateiName%_Full_Script.sql
set BackupBAKpath=%Backuppath%\Current
set BackupTXTpath=%Backuppath%\Current\txt
Но проблема является переменной CURRDB. Сценарий обрабатывает его как команду из-за символов! и = в строке. Так что я получаю сообщение об ошибке, что в cmd 'testtest' is not recognized as an internal or external command, operable programm or batch file.
Так кажется, что скрипт удаляет !
и =
из этой переменной.
Так как я могу избежать !
и =
в переменной?
Не используйте пробелы вокруг команды 'SET'. Используйте 'SET CURRDB = string ...', иначе вы получили имена переменных с таким пространством, как 'CURRDB' –
jeb
Удалите ПРОБЕЛ вокруг '='; в противном случае он становится частью имени переменной и строкового значения ... – aschipfl
У меня нет пробелов в моем скрипте. Я просто использовал его здесь для бесцельности. –