Я работаю с системой CAD для одежды (Lectra Modaris), которая автоматически генерирует 3 файла при сохранении. Есть .MDL файл,.HTML-файл и и.XCH файл

Я хочу, чтобы файлы HTML автоматически сохранялись в папке, отличной от файлов MDL (мне все равно, что происходит с файлами XCH, потому что я их не использую).

Я говорил с поставщиком систем CAD, и они говорят, что они не могут помочь с этим, но мне интересно, могу ли я что-нибудь сделать из Windows, чтобы это произошло.

Спасибо!

1 ответ1

0

Есть много разных способов сделать это.

Вы можете использовать множество различных языков сценариев, которые изначально работают в Windows. .bat Batch, .vbs Visual Basic, .ps1 PowerShell и .js JavaScript.

Аспект автоматизации вашего конкретного набора задач также имеет разные подходы.

  1. Вы можете написать скрипт так, чтобы он ждал изменений из вашего приложения.
  2. Вы можете запланировать запуск сценария в планировщике задач Windows каждые 15 минут; или любой другой интервал, который вы хотите.

Код Windows, который вы можете использовать, действительно прост, переносим для всех версий Windows для ПК, и любой может его использовать. Это то, что я приведу ниже; это будет на языке сценариев Batch .bat. Поскольку я не знаю ваш уровень опыта, я предполагаю, что вы никогда не работали со сценариями .bat.

Вам нужно знать две команды: cd и copy.exe. Требуемые навыки работы с Windows Scripting также невелики. 1. Файл .bat или .cmd представляет собой пакетный или командный сценарий Windows. - При создании файла .bat это набор инструкций для компьютера. Если вы напишите строку "Hello World" в файле .bat, ничего не произойдет, но если вы добавите echo "Hello World", "program" отобразит строку hello world. 2. Так много может пойти не так. - Несмотря на то, что все это (сценарий "Программирование") звучит просто, существует множество способов, как что-то пойдет не так и вызовет реальные проблемы, в вашем случае, возможно, удаление файлов ваших работодателей. Ниже я приведу несколько комментариев в сценарии, в которых будет описан только 1 пример того, как что-то может пойти не так.

REM 2.1 Lines of text where beginning of the line has the word REM are 
    ways to put comments in a script. The echo command is the 3rd command 
    but isnt necessary.

REM This next line of code is required for decent display.
@Echo Off

REM 1. Syntax for the cd (Acronym for Change Directory) command is:
REM    CD "SomeFolders full directory path"
REM                  OR
REM    CD "SomeFolder inside the current folders path"
REM                  OR
REM    CD
REM    Using the command cd without anything after it will show your 
       current directory (Your current location)

REM 2. Syntax for the copy command is:
REM    Copy SourceFolder DestinationFolder
REM                  Or
REM    Copy SourceFoldersWildCards DestinationFolder

REM 1.  Change directory to where your files are.
REM You will have to change "C:\Users\Liz E\My Work Files" to the location 
    of your files. I just used this as an example.

REM 2.2 DoubleQuotes are excellent practice b/c all commands don't know how to deal with it when they are not present.
CD "C:\Users\Liz E\My Work Files"

REM Now that you are in another folder you can use relative references.
REM 2. Do some file copying.
REM This is a purposefully incorrect line of code to show what can go wrong.
Copy *.MDL C:\Users\Liz E\My Work Files\The MDL Files
REM Copy doesnt know what to do because there are no DoubleQuotes. 
Thankfully it doesnt do any copying and instead gives you an error message.

Copy *.MDL "C:\Users\Liz E\My Work Files\The MDL Files"
Copy *.HTML "My Work Files\The HTML Files"
Del *.XCH
REM Copied any file with the .MDL file extension
REM - into a folder named "The MDL Files"
REM - using absolute references.
REM Copied *.HTML files to a folder named "The HTML Files"
REM - using relative references.
REM Deleted .xch files using relative references.
REM 3.0 Del was undiscussed and makes 4 commands, 3 of which are necessary.

Ниже приведена версия скрипта без комментариев.

@Echo Off
CD "C:\Users\Liz E\My Work Files"
Copy *.MDL  "C:\Users\Liz E\My Work Files\The MDL Files"
Copy *.HTML "My Work Files\The HTML Files"
Del  *.XCH

Улучшенная версия. Заявление IF.

@Echo Off
CD "C:\Users\Liz E\My Work Files"
IF /I NOT "%CD%"=="C:\Users\Liz E\My-Work-Files" GOTO :EOF
Copy *.MDL  "C:\Users\Liz E\My-Work-Files\The-MDL-Files"
Copy *.HTML "C:\Users\Liz E\My-Work-Files\The-HTML-Files"
Del  C:\Users\Liz E\My-Work-Files\*.XCH"

Улучшенная версия с автоматизацией.

@Echo Off
REM Set/configure the work folder in C:\My-Work-Files
REM Helps if ur work files are approaching length limit for windows files.
REM Note though you may have to deal with the folders permissions if you
REM put it outside your userprofile. This applies if your concerned about
REM someone else deleting your files or something.
REM Set/configure the work folder in C:\Users\Liz E\My-Work-Files
REM The 2nd line of code "overwrites/takes precedence" over the first one.
Set "MyWorkFiles="%SystemDrive%\My-Work-Files"
Set "MyWorkFiles="%UserProfile%\My-Work-Files"
Set "MDLFilesDest=UserProfile%\My-Work-Files\The-MDL-Files"
REM Set "HTMLFilesDest=UserProfile%\My-Work-Files\The-HTML-Files"

CD "%MyWorkFiles%"
REM If CurrentDirectory isnt right return/dont do anymore of the script.
IF /I NOT "%CD%"=="%MyWorkFiles%" (
    Echo Oops. I must have moved, renamed, or deleted the folder.
    Echo Returning from the script.
    Pause
    GOTO :EOF
)

:Begin
Copy "%MyWorkFiles%\*.MDL"  "%MDLFilesDest%"                             2>Nul
Copy "%MyWorkFiles%\*.HTML" "%UserProfile%\My Work Files\The-HTML-Files" 2>Nul
Del  "%UserProfile%\My Work Files\*.XCH"                                 2>Nul

REM TheAutomationLine. Wait/"pause" for 60 seconds.
Ping 127.0.0.1 -n 60 >Nul

REM Go the the label/section of the script marked as :Begin
REM Effectively this script will run forever; until you close it.
REM You can minimize it and it will work in the "background"
GOTO :Begin

Вышеприведенный скрипт [s] не может ошибаться, поскольку в em нет синтаксических ошибок / ошибок. Да, третий ввел четвертую команду в "ЕСЛИ". Последний скрипт имеет еще несколько "новых" команд.

Все они присутствуют в последнем сценарии.

  1. Одним из способов улучшить это было бы отсутствие пробелов в именах файлов.

  2. Другой способ - использовать «C:\Users\Liz E\My Work Files * .html» вместо просто * .html, но оба они верны и будут работать отлично.

  3. Другой способ - добавить некоторые проверки безопасности кода / кода, такие как проверка, чтобы увидеть / проверить текущий каталог и возврат / выход из сценария, если (по некоторым почти невозможным причинам) команда cd не сработала.

Эта строка кода в сценарии 3. ЕСЛИ / Я НЕ "% CD%" == "C:\Users\Liz E\My Work Files" GOTO:EOF

  1. Использование встроенных скриптов пакетных переменных SystemDrive/UserProfile, другие.

Однако между тем, что он находится на веб-странице, и тем, что вы копируете / вставляете его в Блокнот или текстовый редактор по вашему выбору, поверите или нет, что-то может пойти не так.

Результирующая проблема будет такой же, как в примере, который я представил в 1-м / сильно комментированном скрипте выше. Синтаксическая ошибка в двойных кавычках, из-за которой ваш скрипт ничего не делает. Кто знает, что можно сделать что-то еще в какой-то другой редакции Windows.

Проблема заключается в том, что копируемый текст находится в другой кодировке, и при вставке это кодировка. Кодировка приводит к символам, которые сценарии .bat не понимают.

Таким образом, большая часть приведенного выше некомментированного кода будет одинаковой; примерно 90%. Что будет отличаться, это двойные кавычки. Они будут в другой кодировке. Вы можете выбрать символ цитирования и использовать Find/Replace в NotePad, чтобы заменить то, что выглядит как очень хороший символ двойных кавычек (хотя вы можете заметить, что он выделен курсивом) на тот, который вы вручную вводите в диалог "Заменить" в NotePad. ,

См. Связанную статью в нижней части этого сообщения, если это звучит сложно или вы хотите загрузить несколько классных приложений для решения этой проблемы кодирования.

Копирование / вставка проблемы решена https://stackoverflow.com/questions/122404/how-to-copy-and-paste-code-without-rich-text-formatting

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .