Назад | Перейти на главную страницу

Нужен скрипт для замены ТЕКСТА в выбранных файлах

Окружающая среда Windows 10,
C: \ Folder_With_VMXfiles, установленный sed для windows

Инструменты: пакетный скрипт, sed для Windows

Требования:

В папке C: \ Folder_With_VMXfiles. Необходимо заменить один текст в файлах vmx другим. Но заменяющий текст специфичен для каждого файла .vmx.

Пример:

Я пытался использовать вложенные циклы for, но смог добиться желаемых результатов. В основном мне нужно перебрать каталог, выбрать файлы «.vmx» и использовать sed для замены текста.

Пытался:

@echo off

for /f %%i in ("Folder_With_VMXfiles") do ( 
    echo %%i
    for /l %%j in (1,1,9) do (
         sed -i "s/COM/COM%%j/" %%i )

 ) 

Вы ничего не говорите про именование файлов vmx?
1.vmx, 2.vmx?
А зачем тебе это, когда знаешь имена?

@Echo off
Pushd "X:\Folder\with\vmxfiles"
sed -i "s/COM2/COM33/" 1.vmx
sed -i "s/COM3/COM34/" 2.vmx
Popd

Динамический подход, назначающий COM-порт на два больше, чем номер клона

@echo off
Pushd "Folder_With_VMXfiles"

for /l %%j in (2,1,9) do Call :sub %%j
Goto :Eof

:Sub
Echo Prcessing Clone%1.vmx
Set /A NewCom=%1 +2
Echo sed -i "s/COM\d+/COM%NewCom/" Clone%1.vmx

Я не знаю максимального назначаемого номера com-порта. Чтобы sed действительно изменил значения, удалите эхо в последней строке.