Я хотел бы иметь возможность редактировать текстовый файл с командным файлом. Это немного сложно из-за ряда вещей.
Во-первых, имя файла - frog.properties, и он прекрасно открывается в блокноте, но на компьютерах он запускается; тип файла .properties не связан с Блокнотом. Если файл нуждается в нем, можно создать ассоциацию, но я бы хотел этого избежать.
Во-вторых, текст, который нужно отредактировать, - это одна строка в файле. Первые 9 символов в строке, которую мы хотим отредактировать, являются уникальными для этой строки и останутся такими же после редактирования. Однако расположение этой строки в файле и то, что следует за ней в этой строке, зависит от компьютера. Строка может быть перемещена в файл без проблем, если ее нужно удалить и добавить в конец.
Пока я нашел код, указанный ниже, нашел здесь и немного его отредактировал. Прямо сейчас, когда я запускаю командный файл (с именем replace.cmd или replace.bat), он просто отображает «этот файл не существует» и выходит из приглашения. Я подтвердил, что файл находится в местоположении.
В будущем я хотел бы иметь возможность переработать этот код, чтобы легко использовать его для редактирования любого файла .ini или txt, просто изменив местоположение файла и текст для поиска и редактирования. Тип файла, из которого это может быть запущено, должен быть .bat или .cmd из-за среды, в которой я буду использовать это.
Спасибо.
@echo off
setlocal enabledelayedexpansion
if not exist "%1" (echo this file does not exist...)&goto :Failed
for /f "tokens=* delims=" %%a in (%1) do (
set write=%%a
if "%%a"=="%2" set write=%3
echo !write!
(echo !write!)>>%~n1.replaced%~x1
)
replace "C:\Users\ME\Desktop\test.txt" "withquot=*" "withquot=it worked"
pause
:Failed
pause
ОБНОВЛЕНИЕ 09/20/2011
Прямо сейчас файл отобразит «этот файл не существует» и остановится. Поэтому я убрал строку if not exist "%1" (echo this file does not exist...)&goto :Failed
и я получаю
invalid Switch - "withquot=it worked"
Я попытался удалить «=» из неверного ключа, и я получил то же самое invalid switch
Я попытался использовать set
для установки отдельных переменных и изменил ссылки в файле. Я попытался переместить тестовый файл в корень C и изменить ссылку.
В настоящее время тестовый файл выглядит следующим образом
test file
withquot=didntwork
USING_LOCAL_SHARED_MEM=1
Ничто из того, что я делаю, не заставит этот файл работать, я, должно быть, упускаю что-то маленькое или иду в этом неправильном направлении. Я проверил файл в Vista и Windows 7. Что-то не так с файлом, который вы видите?
Итог, мне все равно, как, но я хочу иметь возможность редактировать TXT-файл с помощью пакетного файла и иметь возможность заменить строку.