Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 07.09.2018
Сообщений: 31
1

Поменять четные и нечетные слова местами

24.09.2018, 21:31. Показов 6069. Ответов 24

Author24 — интернет-сервис помощи студентам
Доброго времени суток.

Помогите пожалуйста написать скрипт на powershell.

Нужно во входном потоке строк, которые считываются из файла, поменять в каждой строке четные и нечетные слова местами. Результат записать в отдельный файл. Имена файлов задать через параметры командной строки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2018, 21:31
Ответы с готовыми решениями:

Поменять четные и нечетные слова местами
Доброго времени суток. Помогите пожалуйста написать скрипт на cmd. Нужно во входном потоке...

Поменять местами чётные и нечётные слова
Разработать программу для ввода преобразования вывода строк. 1.Без использования методов класса...

Поменять местами четные и нечетные символы слова
Как поменять местами четные и нечетные символы слова? Заранее спс!

Поменять местами четные и нечетные, по порядку слова
Здравствуйте. Обрисую ситуацию: есть задание "Ввести с клавиатуры предложение. Поменять местами...

24
1885 / 1107 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
25.09.2018, 21:01 21
Лучший ответ Сообщение было отмечено DerriK_N как решение

Решение

Author24 — интернет-сервис помощи студентам
Цитата Сообщение от DerriK_N Посмотреть сообщение
забросить в *.txt, и создать с него файл под названием convert.cmd
Нет, надо эту строчку сохранить в файле convert.cmd

PowerShell
1
powershell.exe -ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command "&{gc %1 |%%{(($a=$_.split())|%%{$i=1}{$a[$i,($i-1)];$i+=2})-join' '}|sc %2}"
Цитата Сообщение от DerriK_N Посмотреть сообщение
Потом зайти в PowerShell и запустить вот этот код
Нет, потом запустить cmd.exe (Командная строка) и в ней выполнить:

Код
convert.cmd c:\1\text.txt c:\1\text_out.txt
Вместо "c:\1\text.txt" указать полный путь к исходному тексту, а вместо "c:\1\text_out.txt" полный путь к файлу, в котором будет сохранён конвертированный вариант.

И да, в cmd нужно перейти в папку, где сохранён convert.cmd или указать полный путь к нему, например:

Код
c:\>c:\scripts\convert.cmd c:\1\text.txt c:\1\text_out.txt
1
0 / 0 / 0
Регистрация: 07.09.2018
Сообщений: 31
25.09.2018, 21:04  [ТС] 22
Значит гайд как запускать это все для таких чайников как я:
1) Вот этот код:
C++
1
powershell.exe -ExecutionPolicy Bypass -NonInteractive -NoProfile -NoLogo -Command "&{gc %1 |%%{(($a=$_.split())|%%{$i=1}{$a[$i,($i-1)];$i+=2})-join' '}|sc %2}"
нужно забросить в *.txt, и создать с него файл под названием convert.cmd
2) Потом зайти через Win+R в cmd
3) Через команду E: переходим в директиву нашего диска, У меня в диске Е, поэтому в Е захожу (cd не пашет);
4) Потом запустить вот этот код
C++
1
Е:\>convert.cmd c:\1\text.txt c:\1\text_out.txt
и вуаля))
СПАСИБО БОЛЬШОЕ ВСЕМ КТО ПОМАГАЛ!!! Просто никогда не работал в cmd, поэтому так дотошно вас напрягал, извените))
Всем парням + в рейтинг и в карму!)) Тему можно закрывать!)))
0
Любознательный
5672 / 1687 / 314
Регистрация: 10.03.2016
Сообщений: 3,844
25.09.2018, 21:35 23
Цитата Сообщение от DerriK_N Посмотреть сообщение
текстовый файл можно брать любой
любой, да не сосем... это ведь cmd, там всё обложено ограничениями...
Ок, преподаватель вряд ли примет решение с участием powershell, даже запускаемый из cmd.
Вот чистый cmd:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
set "var=%~1"
if not defined var (echo Требуется указать файл для разбора&pause&exit /b)
 
set "out=out.txt"
 
setlocal enabledelayedexpansion
(for /f "tokens=1-26" %%a in ('type "%var%"') do (
    set "x=%%b %%a %%d %%c %%f %%e %%h %%g %%j %%i %%l %%k %%n %%m %%p %%o %%r %%q %%t %%s %%v %%u %%x %%w %%z %%y"
    echo !x:  = !
))>"%out%"
endlocal
С оговорками:
1. В конце строк будут присутствовать лишние пробелы
2. Слов в строке не должно быть больше 26
3. В качестве параметра обязательно указать один текстовый файл
1
0 / 0 / 0
Регистрация: 07.09.2018
Сообщений: 31
25.09.2018, 23:02  [ТС] 24
Добавлено через 12 минут
Да, все работает только один вопрос:
На выходе я получаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
E:\OS>(
set "x=two one  row                      "  
 echo !x:  = ! 
) 
two one row           
 
E:\OS>(
set "x=full call  need                      "  
 echo !x:  = ! 
) 
full call need           
 
E:\OS>(
set "x=me give  please                      "  
 echo !x:  = ! 
) 
me give please
Возможно ли убрать
C++
1
2
3
E:\OS>(
set "x=two one  row                      "  
 echo !x:  = !
и остальные две части кода, что бы остались только слова??

Добавлено через 57 минут
Хотя впринципе, это может уже и не особо важно.
Спасибо большое!))
0
Любознательный
5672 / 1687 / 314
Регистрация: 10.03.2016
Сообщений: 3,844
26.09.2018, 08:40 25
Цитата Сообщение от DerriK_N Посмотреть сообщение
На выходе я получаю
на выходе чего? тот код, который дал я, создает на выходе файл, а на вход принимает тоже файл...
тот сценарий необходимо поместить в файл с кодировкой cp866, например, run.bat - строка запуска тогда будет:
Windows Batch file
1
run.bat text.txt
-если текстовый файл находится рядом со сценарием.

либо так:
Windows Batch file
1
run.bat "x:\какой-то каталог\ещё один каталог\text.txt"
- если требуется запускать сценарий из любого места, а текстовый файл расположен в обозначенном месте дерева каталогов.
выходной файл будет создан рядом со сценарием.

Цитата Сообщение от DerriK_N Посмотреть сообщение
и остальные две части кода, что бы остались только слова??
какие части? в файле и будут только слова, ничего другого, кроме лишних пробелов в конце строк.
0
26.09.2018, 08:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2018, 08:40
Помогаю со студенческими работами здесь

Как поменять местами четные и нечетные слова
Задание таково, нужно поменять так что-бы четные и нечетные слова поменялись местами. Заранее...

Дано предложение, слова в нем разделены пробелом, поменять местами четные и нечетные по порядку следования слова
Пожалуйста помогите решить задачу по Java до четверга (12.11.2010) Дано предложение, слова в...

Поменять местами все четные и нечетные слова в строке
Задана строка символов, содержащая два или более слов, разделенных пробелами. Написать программу,...

Поменять местами четные и нечетные по порядку следования слова
Дано предложение, слова в нем разделены пробелом, поменять местами четные и нечетные по порядку...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru