Окружающая среда 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 действительно изменил значения, удалите эхо в последней строке.