Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
10 / 10 / 5
Регистрация: 12.01.2017
Сообщений: 387

Как отредактировать RDP файлы посредством BAT

10.08.2018, 10:57. Показов 3774. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно отредактировать RDP файлы, сменить в нём один айпи на другой. Есть такой батник

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
 
Set infile=O:\RDP\1.txt
Set outFile=O:\RDP\2.txt
Set find=192.168.1.2
Set replace=192.168.65.1
 
for /L %%i in (1,1,50) do (
@echo %%i
for /F "UseBackQ delims=" %%n in ("%infile%") do ( 
  set "LINE=%%n"
  echo=!LINE:%find%=%replace%!>>"%outFile%"
)
)
Если открываю RDP файл блокнотом и сохраняю его в текстовом файле 1.txt с родной кодировкой в Юникоде, то батник не работает. Если сохраняю полученный 1.txt в ANSI, то скрипт нормально работает. Далее уже отредактированный файл нужно снова перевести в Юникод и восстановить RDP, уже отредактированный. Что для этого ещё нужно внести в скрипт?
Подходят любые другие варианты редактирования.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.08.2018, 10:57
Ответы с готовыми решениями:

Как сделать bat-ник с фильтром который будет проверять абсолютно все на пк, но файлы с окончанием .bat и .vbs
Как сделать bat-ник с фильтром который будет проверять абсолютно все на пк, но файлы с окончанием .bat и .vbs будет переносить в папку...

Как посредством CMD сравнить все файлы в заданной директории и удалить файлы с одинаковым содержимым?
В папке "папка" находятся текстовые файлы 1.txt 2.txt 3.txt 4.txt, некоторые из этих файлов имеют абсолютно одинаковое содержимое. Как...

Как запускать и останавливать уже настроенный rdp-сервер из bat-файла?
здравствуйте. подскажите пожалуйста, как запускать и останавливать уже настроенный rdp-сервер из bat-файла?

7
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.08.2018, 11:42
Кодировка
0
10 / 10 / 5
Регистрация: 12.01.2017
Сообщений: 387
10.08.2018, 14:41  [ТС]
Ссылка, безусловно, полезная. Но завела она меня в ещё бОльшие дебри. Попробую сформулировать вопрос проще.
Как можно редактировать файлы в кодировке Юникод без конвертирования кодировок друг в друга? Вышеуказанный мной батник в Юникоде этого делать не умеет.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.08.2018, 21:16
sundraw,
старайтесь привести все (совершенно все) к одному виду. Лично я работаю в кодировке 866. Это удобно по тем причинам что в консоли я всегда наблюдаю нормальную кириллицу. Для этого блокнот у меня заменен на AkelPad, в нем выставлено по умолчанию создавать и открывать файлы в кодировке 866 и все коды в bat я тоже сразу создаю и сохраняю в кодировке 866, поэтому любые имена или пути с кириллицей хоть в переменных хоть в файлах (файлы в 866-й как писал выше) хоть в коде и чтаются правильно и выводятся и т.д и т.п
0
10 / 10 / 5
Регистрация: 12.01.2017
Сообщений: 387
10.08.2018, 21:38  [ТС]
alpap,
На руборде решение уже подсказали, вот только загнать всё в цикл не получается.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.08.2018, 23:04
sundraw,
правилами запрещено давать ссылки на другие форумы, выкладывайте решение здесь, будем посмотреть что можно сделать, пока непонятно куда вы цикл хотите прилепить.
0
10 / 10 / 5
Регистрация: 12.01.2017
Сообщений: 387
11.08.2018, 06:24  [ТС]
alpap,
Решение предложил RetroRocket:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@echo off  
SetLocal EnableExtensions EnableDelayedExpansion  
 
::исходные данные
Set infile=test file 1.rdp
Set outFile=test file 2.rdp 
Set find=192.168.1.2
Set replace=192.168.56.1
 
::из исходного RDP-файла в UTF-кодировке формируем временный файл в ANSI-кодировке  
type "%infile%" > "%infile%.tmprdp"
 
::поиск и замена
for /F "UseBackQ delims=" %%n in ("%infile%.tmprdp") do (
set "LINE=%%n"
echo=!LINE:%find%=%replace%!>>"%outFile%.tmprdp"
)
 
::проверка результата поиска и замены
fc /b "%infile%.tmprdp" "%outFile%.tmprdp" >nul
if %errorlevel% equ 0 echo No matches found && goto end
 
::формируем два байта BOM в итоговом RDP-файле
CHCP 1251>nul
<nul set /p strBOM=яю>"%outFile%"
 
::копируем содержимое из временного файла в ANSI-кодировке в итоговый RDP-файл в UTF-кодировке
cmd /u /c type "%outFile%.tmprdp" >>"%outFile%"
 
:end
::удаляем временные файлы
del *.tmprdp /q
Скрипт работает без всяких перекодировок, сразу выдавая готовый отредактированный RDP файл. Но мне нужно сделать цикл для редактирования не одного файла, а 50-ти и более по типу
Windows Batch file
1
2
for /L %%i in (1,1,50) do (
)
У меня не получилось.
0
10 / 10 / 5
Регистрация: 12.01.2017
Сообщений: 387
16.08.2018, 18:33  [ТС]
Всё-таки методом научного тыка и удаления лишних деталей решение нашёл:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@echo off  
SetLocal EnableExtensions EnableDelayedExpansion  
 
::исходные данные
Set infile=O:\RDP\%%i.rdp
Set outFile=O:\RDP\RDP1\%%i.rdp
Set find=192.168.1.2
Set replace=192.168.56.1
 
for /L %%i in (1,1,50) do (
@echo %%i
 
::из исходного RDP-файла в UTF-кодировке формируем временный файл в ANSI-кодировке  
type "%infile%" > "%infile%.tmprdp"
 
::поиск и замена
for /F "UseBackQ delims=" %%n in ("%infile%.tmprdp") do (
set "LINE=%%n"
echo=!LINE:%find%=%replace%!>>"%outFile%.tmprdp"
)
 
::копируем содержимое из временного файла в ANSI-кодировке в итоговый RDP-файл в UTF-кодировке
cmd /u /c type "%outFile%.tmprdp" >>"%outFile%"
 
::удаляем временные файлы
del O:\RDP\*.tmprdp /q 
del O:\RDP\RDP1\*.tmprdp /q 
 
)
Удалив проверку, цикл по редактированию файлов RDP в юникоде работает. Задачу можно считать решённой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.08.2018, 18:33
Помогаю со студенческими работами здесь

Как добавить нового пользователя с правами админа посредством bat
Как посредством bat (возможно другого вспомогательного к примеру powershell в том же bat) создать нового пользователя в Windows 10 ...

Как скопировать файл в системный каталог посредством cmd/bat
Доброго всем времени суток. Наберитесь минутку терпения. Хочу передать всю интригу... Как же тут без нее. Я бился над &quot;этим...

Как отредактировать и откомпилировать .jar файлы?
Доброго времени суток. Есть вопрос. У меня есть парочка игрушек на мобильник, тобишь по 2 файла на каждую игрушку: .jar, .jad. Всё,...

Как в Битрикс отредактировать файлы header и footer?
Как в битрикс отредактировать файлы header и footer ?

Как отредактировать файлы хранящиеся в базе данных на примере?
Всем доброго вечера. Есть база данных, которая состоит из таблицы tableForBase и двух колонок id и valueActive. В базе уже создано 18...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru