Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создать текстовые файлы из списка в .txt (http://forum.oszone.net/showthread.php?t=349155)

lyohalyoha 06-07-2021 14:57 2961532

Создать текстовые файлы из списка в .txt
 
Здравствуйте! Может кто знает маленьку программку,которая может из файла .txt со списком внутри-создать несколько текстовых файлов с названиями из .txt
Например: внутри .txt имеется список:
Понедельник
Вторник
Среда
и т.д. И нужно,чтобы программа создала файлы
Понедельник.txt
Вторник.txt
Среда.txt
и т.д. Может через батник как-то можно это реализовать.Подскажите,пожалуйста!

megaloman 06-07-2021 15:25 2961538

Цитата:

Цитата Z:\Box_In\внутри.txt
Понедельник
Вторник
Среда
Хроно синкластическая инфандибула
и т.д.

Код:

@Echo Off
>nul chcp 1251
        FOR /F "usebackq delims=" %%s IN ("Z:\Box_In\внутри.txt") DO >"Z:\Box_Out\%%s.txt" cd.
Exit /B 0

Я предположил, что Ваш текстовый файл создан в кодировке 1251, поэтому и батник надо сохранить в кодировке 1251, иначе надо удалить >nul chcp 1251 и сохранить батник в 866 кодировке.

lyohalyoha 06-07-2021 16:14 2961547

Цитата:

Цитата megaloman
@Echo Off
>nul chcp 1251
FOR /F "usebackq delims=" %%s IN ("Z:\Box_In\внутри.txt") DO >"Z:\Box_Out\%%s.txt" cd.
Exit /B 0 »

Всё работает,как надо.Спасибо большое!

greg zakharov 06-07-2021 17:20 2961555

Цитата:

Цитата lyohalyoha
Например: внутри .txt имеется список:
Понедельник
Вторник
Среда
и т.д.

С днями недели ежели, то всё решается командой:
Код:

pwsh -nop -c "(Get-Culture ru-RU).DateTimeformat.DayNames.ForEach{New-Item -Name ""$($_).txt"" -ItemType File}"
pwsh делает это более наглядно, хотя и не является штатным.

megaloman 06-07-2021 19:59 2961577

lyohalyoha, Если список файлов небольшой, можно обойтись без текстового файла с именами, например:
Код:

@Echo Off
>nul chcp 1251
        FOR %%s IN (Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье "Свод за неделю") DO >"Z:\Box_Out\%%~s.txt" cd.
Exit /B 0

Если в имени предполагаются пробелы, в списке взять его в кавычки.

Iska 06-07-2021 20:16 2961583

Цитата:

Цитата megaloman
Хроно синкластическая инфандибула »

Я протестую :)! Инфандибулум!

megaloman 06-07-2021 20:48 2961585

Цитата:

Цитата Iska
Я протестую »

Отклоняю: давайте не будем засорять русский язык иностранными словами. Моя пятилетняя дочь много лет тому назад изобразила красками именно инфандибулу. :biggrin:

greg zakharov 06-07-2021 21:10 2961587

Цитата:

Цитата megaloman
...давайте не будем засорять русский язык... Моя пятилетняя дочь много лет тому назад...

Засорять то можете не засорять, но со стилистикой у вас что-то не очень: "пятилетняя дочь много лет назад", - а сколько лет наперёд она пятилетняя?


Между прочим, если допускается использование sed, можно не гонять for:
Код:

>nul chcp 1251 & (sed "s/^/cd.>/;s/$/.txt/" list.txt |>nul cmd) & chcp 866>nul
Вполне корректно отработает в командной строке. Если же строки содержат пробелы:
Код:

>nul chcp 1251 & (sed "s/^/cd.>\"/;s/$/.txt\"/" list.txt |>nul cmd) & chcp 866>nul

Iska 06-07-2021 21:49 2961590

Цитата:

Цитата megaloman
Моя пятилетняя дочь много лет тому назад изобразила красками именно инфандибулу. »

Хочу-хочу-хочу. Покажите!


Время: 07:41.

Время: 07:41.
© OSzone.net 2001-