Ежедневно я редактирую G-код для запуска на CO2-лазере, и я должен удалить одну и ту же строку из каждого файла перед его запуском. В настоящее время я открываю каждый файл в блокноте и делаю Ctrl + H и заменяю его таким образом. Я ищу более эффективный способ сделать это.
Мне дан пакет с номером прогона (ie 123456), и этот номер прогона соответствует каталогу в сети. В этом каталоге находится ряд файлов .txt или .n c, которые требуют удаления строки.
Каждый каталог выполнения содержится в файловой структуре, которая выглядит следующим образом
"\\ server \ x \ companyname \ 123456"
В \ companyname \ могут быть сотни каталогов прогонов, все 6 цифр - это номера прогонов и различны для каждого случая. Я хотел бы иметь возможность создать программу, которая запрашивает у меня номер прогона, а затем находит этот каталог в \ x или, вернее, полный путь при изменении \ companyname в зависимости от номера прогона, а затем заменяет строку в каждом файл в каталоге \ 123456. Таким образом, если строка Y11, и мне дали номер прогона 000001, мне будет предложено указать номер прогона, он найдет каталог и установит путь к \\ server \ x \ walmart \ 000001 \ и найдет каждый файл в этот каталог для строки Y11 и удалить его.
Я попытался использовать powershell и смог найти папку запуска с помощью Prompt и get-childitem с помощью -recurse и установил переменную с запросом для использования -include, однако система не разрешает сценарии!
Я не могу запустить сценарии, потому что это рабочий компьютер. Это говорит, что выполнение сценариев отключено в этой системе. В основном, get-executepolicy ограничено, и у меня нет этого сертификата.
Это код, который у меня есть.
$Run = Read-Host prompt "What is the run number?"
$Files = Get-ChildItem -Path "\\\server\x\" -Filter "$Run" -recurse
foreach ($file in $files)
(Get-object $file.PSPath) |
Foreach-Object {$_ -replace "G33", ""} |
Set-Content $file.PSPath
Последняя часть, начинающаяся с foreach, - это то, что я скопировал и вставил в предыдущем примере. У меня очень мало опыта работы с PowerShell. Таким образом, номер прогона находится в каталоге на два уровня ниже x \, и, когда пользователю будет предложено ввести номер прогона, я хочу, чтобы он выполнил поиск по всем x, найдите путь, включая каталог, который содержит номер прогона (walmart в пример выше), а затем получить все файлы в папке номера прогона. Эти файлы будут иметь путь, например
\ server \ x \ walmart \ 000001 \ 118000001_01.N C
В этой папке может быть много файлов, и все они должны иметь струна G33 снята с них.
Я новичок в этом, кто-то может объяснить, пожалуйста, шаг за шагом, используя powershell, visual basi c или любой метод, который вы считаете наиболее простым? Даже java! Я надеюсь, что смогу использовать это на ПК с различными операционными системами. В основном windows. Спасибо!