Більше

Чи можна викликати r.mask з командного файлу?


Я використовую сценарій оболонки, який викликається командним файлом. Сценарій оболонки містить сценарії GRASS, які я використовую для своєї програми. Кожного разу, коли я використовую скрипт r.mask, він відображає помилкуr.mask: команду не знайдено.

Чи можна викликати r.mask з командного файлу? Як я можу використовувати r.mask за допомогою командного файлу та сценарію оболонки?


Сценарій оболонки, викликаний командним файлом? Отже, ви використовуєте GRASS на коробці * nix, яка підключена до вікна Windows ...

У будь-якому випадку, вам потрібно переконатись, що ви правильно налаштували середовище на будь-якій машині, де встановлено GRASS. Щонайменше вам потрібно переконатися, що змінна середовища PATH містить каталог, в якому можна знайти скрипти GRASS. На моїй машині Убунуту це/ usr / lib / grass64 / scripts /але ваша установка може бути іншою.

Тут ви знайдете багато корисної інформації щодо налаштування середовища GRASS та запуску сценаріїв оболонки.


Я розумію, що ви працюєте з winGRASS. Якщо це winGRASS 6, спробуйтеr.mask.batабор.маска.шщоб назвати це.


Вам трохи незрозуміло, де знаходиться app1.exe.

Якщо він ділиться папкою з run1.bat, змініть run1.bat

% 0 відноситься до запущеної в даний момент партії та модифікатора

dp повертає диск та шлях (із зворотною косою рискою.)

Відповідь на ваше запитання можна отримати з подібного запитання на Stack Overflow.

Використовуючи згадані тут змінні, ви можете оновити run1.bat для виклику app1.exe таким рядком:%

dp0 змінна включає кінцеву скісну риску.) Це вкаже командному файлу запускати виконуваний файл із поточного розташування командного файлу.


Так, це простіше, ніж ви можете подумати. З подання Затвердити / Відхилити можливість перевірки елементів видалено. Однак у вікні всіх елементів (або спеціальних подань, які допоможуть вам фільтрувати) просто позначте елементи, які ви хочете затвердити, тоді на стрічці Елементи праворуч ви знайдете Затвердити / Відхилити (піктограма - це сторінка документа з чек та х на ньому). Натискання кнопки із вибраними кількома елементами застосовуватиме статус затвердження до всіх вибраних елементів. Те саме стосується бібліотек документів, за винятком того, що стрічка "Елементи" є стрічкою "Файли".

Я застосував кнопку затвердження / відхилення пакетного завдання з рішенням Farm Studio Farm, сподіваюся, це може комусь допомогти (статус затвердження вмісту можна змінити робочим процесом, хоча і не обов'язково)

Створіть рішення ферми VS, додайте елемент і введіть його в Element.xml:

Додайте сторінку aspx, додайте кілька кнопок (затвердити, відхилити тощо), а потім у дії схвалення:

Відвідайте http: //. /_layouts/sitemanager.aspx, щоб отримати доступ до диспетчера сайтів, вибрати цікаві файли та використовувати пункт "Дії" на верхній панелі навігації.

(У Sharepoint Server 2013. Не знаю, чи однаково для інших версій).

Знайдено за допомогою відомих URL-адрес SharePoint та розташування підсилювачів у блогах розробників MS.

Я постійно натрапляю на це і забуваю, як це зробив. Тільки що згадав - сподіваюся, це допомагає комусь (можливо, навіть майбутньому мені, коли я забуду і знов шукаю).

Я просто додав поле до списку під назвою "Пакетний схвалення тригера" (або що завгодно) і дав йому початкове значення "1". Створив мій робочий процес для оновлення стану затвердження з чернетки -> в очікуванні -> затверджено. Встановіть робочий потік для запуску при будь-якій зміні елемента. Змінено всі "Пакетні схвалення тригерів" на "2" (перетягніть вставку виділення у поданні табличного списку). Альт - робочий процес працює на всіх змінених елементах і встановлює статус затвердженого.


На додаток до відповіді @ splattne, використовуйте exit / b у командному файлі CALL ed, якщо вам потрібно повернутися раніше.

Іншим варіантом (для сумісності з DOS до версії 3.3 :-)) є виклик командного процесу з дочірньою опцією (/ c) та іменем іншого пакетного файлу для обробки. Це також зробить виклик замість ланцюга, і навіть буде працювати на справді старовинних машинах (про всяк випадок, якщо хтось натрапить на це і піклується). :-)

Тут я намагаюся викликати ці два командні файли послідовно.

Гостро це не вдається дочірньому сценарію, оскільки елемент керування не повертається назад до основного сценарію

Санкет, не викликайте командний файл безпосередньо. Використовуйте команду "CALL". Подивитися splattneприклад.


Ваша "оболонка" або інтерфейс командного рядка називається bash. Ви можете написати скрипт bash, подібний до командного файлу. Скрипт bash починається з She-bang #! / Bin / bash і являє собою не що інше, як набір команд для запуску в послідовності для їх запуску. Ви не обмежуєтесь командою bash, ви можете викликати будь-який двійковий файл в системі, використовуючи повний шлях до двійкового файлу або сценарію.

Основний потік навчання / книги / термінал / bash / Linux тощо Навчальні ресурси командного рядка Linux - cortman https://help.ubuntu.com/community/CommandLineResources

Мій перший bash - це кілька команд, які я кілька разів запускав у терміналі. Тож я перелічив історію за допомогою команди history і скопіював їх у текстовий файл. Перший рядок повинен бути таким (без пробілів перед ним і першим рядком):

І після збереження ви повинні зробити його виконуваним.

Зауважте, що гарною ідеєю є розміщення ваших сценаріїв в одному місці, щоб ви могли їх запускати, не вимагаючи шляху. Якщо ви створили у своєму домі каталог каталогів (mkdir

/ bin) наступного разу, коли ви увійдете в систему, це автоматично буде включено у ваш PATH.

Редагувати: якщо ви хочете, щоб сценарій був доступний для всіх користувачів, розмістіть його в / usr / local / bin і надайте йому власність root з rx-доступом інших користувачів sudo chown root: root / usr / local / bin / your_script sudo chmod 655 / usr / local / bin / your_script


Переглядає папки та файли в пакетному файлі?

Ось моя ситуація. Мета проекту - перенести деякі вкладення в іншу систему.

Ці вкладення будуть розташовані в батьківській папці, скажімо, "Папка 0" (див. Схему цього запитання для кращого розуміння), і вони будуть заархівовані / стиснені.

Я хочу, щоб мій пакетний сценарій називався так:

Я використовую 7za.exe як інструмент вилучення командного рядка.

Що я хочу, щоб мій пакетний скрипт зробив, це переглядати вкладені папки "Папка 0" і витягувати всі файли ZIP, що містяться, у відповідну папку.

Обов’язково, щоб витягнуті файли знаходились у тій самій папці, що і відповідні ZIP-файли. Отже, файли, що містяться у "Файлі 1.zip", потрібні у "Папці 1" тощо.

Я думаю, мені також потрібно буде змінити фактичний каталог перед викликом 7za.exe e% zippedFile для вилучення файлу, але я не можу зрозуміти, як у цьому командному файлі (через я знаю, як у командному рядку, і навіть якщо я знаю це та сама інструкція "cd").

Наведені нижче відповіді близькі до того, що мені потрібно. Але з якихось невідомих причин іноді командний файл, коли я даю параметр, просто нічого не робить і повертає мене до запиту.

Я не писав пакетний файл близько 15 років, тому я зовсім забув про логіку, що лежить в основі і т.д.

Здається, без будь-якої впевненості, сценарій командного файлу не може обробляти імена папок із пробілом. Чи може хтось із вас підтвердити та запропонувати рішення для протидії цьому, будь ласка?

Я тут повністю осліплю. Спасибі за вашу допомогу! =)

Мені потрібно, щоб рішення було повністю рекурсивним, оскільки я не знаю структуру каталогів, щодо якої це буде використано. Вибачте, що не згадував раніше.

Мене надихнули всі Ваші та інші відповіді на те, щоб придумати наступне (яке працює на 98%):

Єдина проблема, яку я отримую, полягає в тому, що він хоче створити, дотримуючись свого прикладу, підпапку File5, щоб витягти zip-файл. Це не проблема при витягуванні власне файлу File5.zip. Але коли він заглиблюється в структуру каталогів до підпапок, оскільки він отримав останнє ім’я файлу File5, він хоче створити підпапку File5 у папці 1 Папка A, наприклад, для вилучення File1.zip. Ось приклад структури:

Отже, розглядаючи вище проілюстровану структуру, він хоче створити File5 у папці A, коли замість нього слід створити File1.

Дякуємо за вашу підтримку та допомогу! =)

Будь-яка допомога вдячна.

Я прийняв відповідь @Dennis Williamson, оскільки його рішення відповідає тому, про що я просив у першу чергу. В іншому випадку, якщо хтось шукає повністю рекурсивне рішення, перейдіть за посиланням у моїй власній відповіді, яке переведе вас на веб-сайт StackOverflow.


Якщо ви хочете оформити це для інших файлів зображень, ви можете використовувати imagemagick для видалення exif-даних за допомогою:

видалити зображення з будь-яких профілів, коментарів або цих фрагментів PNG: bKGD, cHRM, EXIF, gAMA, iCCP, iTXt, sRGB, tEXt, zCCP, zTXt, дата.

Якщо ваші зображення призначені для Інтернету або цифрового використання (я маю на увазі RGB 72 точок на дюйм), ви можете скористатися Photoshop "зберегти для Інтернету" з опцією "Метадані: немає". Він створить просте зображення без додавання даних (це для оптимізації розміру).

Ви можете зробити пакет і автоматично зберегти тисячі зображень.

Це не спрацює, якщо вам потрібен CMYK або зображення, які перевищують певний розмір ("зберегти для Інтернету" все одно буде працювати для зображень розміром до 5000x5000 пікселів), якщо ви не зробите другу партію для повторного збереження у CMYK 300 dpi або інше тобі потрібно. Але це не рекомендується.


1 відповідь 1

Я відповідаю на власне запитання, оскільки знайшов рішення.

На основі пропозиції Скотта (у коментарі до запитання) використовувати сценарії, я знайшов сценарій, який допомагає експортувати кожен шар як растрове зображення. Сценарій під назвою "Пакетний експорт незаблокованих шарів" написаний Джоном Вундесом. Сценарій містить сотні рядків і занадто довгий, щоб розміщувати його тут, але я буду посилатись на завантаження тут (головний сайт - www.wundes.com, на випадок подальшого згнивання посилань).

  • Завантажте сценарій і збережіть його.
  • Відкрийте в Illustrator: Файл> Сценарії> Інший сценарій> знайдіть файл і відкрийте.
  • Відкриється діалогове вікно, сформоване зі сценарію, що дозволяє вказати розмір, формат файлу та каталог призначення, а також ім'я файлу на основі імені шару. Усі розблоковані та видимі шари будуть експортовані.
  • Натисніть кнопку "Пуск".

Я протестував його в Illustrator CS4, і він експортував 300 шарів менш ніж за хвилину.


Перегляньте відео: Как стать владельцем файла или папки и получить доступ на просмотр и редактирование (Вересень 2021).