Я создаю файл .CMD с помощью Informatica 9.5. Он создает две команды MOVE (в том же файле, две отдельные строки) с путями, выбранными из файлов параметров. Общая длина команды MOVE превышает 256 символов, и когда создается файл .CMD, он обрезает этот путь, когда он достигает этого символьного предела.CMD-файл имеет ограничение на 256 символов
Как решить эту проблему?
Выражение Я использую в преобразовании Informatica является:
'MOVE "' || $$FROM_PATH1 || 'FOO.ZIP" "' || $$TO_PATH || 'FOO' || '.ZIP"' || CHR(10) ||
'MOVE "' || $$FROM_PATH2 || 'BAR.ZIP" "' || $$TO_PATH || 'BAR' || '.ZIP"'
Когда файл CMD генерируется, он обрезает вторую переменную и выглядит примерно так:
MOVE "\\ABC\XYZ\FOLDER1\FOO.ZIP" "\\ABC\XYZ\FOLFOO.ZIP"
MOVE "\\ABC\XYZ\FOLDER2\BAR.ZIP" "\\ABC\XYZ\FOLBAR.ZIP"
Если предположить, что $ $ TO_PATH был \\ ABC \ XYZ \ FOLDER3 \, обратите внимание, что он обрезал путь переменной, но все еще добавил жестко кодированные символы. Что дает?
Похоже на проблему в инструменте, который вы используете для создания .cmd-файла (или того, как вы его используете). –
Если общая длина команды MOVE составляет менее 256 символов, она отлично работает. Таким образом, либо Informatica устанавливает ограничение на количество символов в 256, либо CMD-файлы не могут превышать 256 символов в каждой строке. – Meta747
Вы можете проверить это самостоятельно, введя команду echo в приглашении cmd.exe и посмотрев, можете ли вы эхо более 255 символов. Вы увидите, что это возможно. Поэтому ограничение находится в инструменте, который вы используете для создания файла .cmd, а не в самом cmd.exe. –