View previous topic :: View next topic |
Author |
Message |
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Mon May 30, 2011 19:41 Post subject: Автонумерация в конце строки текстового файла |
|
|
Здравствуйте.
Столкнулся с такой проблемой - есть текстовой файл со ссылкой
(http://адрес.ru/) необходимо создать список ссылок вида
Code: | http://адрес.ru/1/
http://адрес.ru/2/
http://адрес.ru/3/
| и т.д до 250 ссылок(желательно каждая ссылка на одной строке) Можно ли средствами total commander реализовать данную функцию или же нужно использовать спец программы? Если кто сталкивался с подобной проблемой прошу совета. Заранее благодарен. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Mon May 30, 2011 20:11 Post subject: |
|
|
ТС здесь в любом случае ни при чем: такие вещи делаются скриптами или батниками (которые сами суть скрипты). По батникам у нас специализируется Tol!k, сиди жди его. Такую простую задачу я бы и сам осилил, но он сделает это явно быстрее и качественнее.
Если бы я был на его месте, я бы задал следующие вопросы:
1) В первом файле только адрес и больше ничего?
2) Что значит "создать список"? Где создать? На экране? В буфере? В файле? Если последнее, то как он будет называться и где располагаться?
3) А почему ты не хочешь использовать для этого средства Экселя? Займет тридцать секунд. Импорт, нумерация, экспорт. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Mon May 30, 2011 20:33 Post subject: |
|
|
Quote: | 1) В первом файле только адрес и больше ничего? |
конечно только адресс Quote: | 2) Что значит "создать список"? Где создать? На экране? В буфере? В файле? Если последнее, то как он будет называться и где располагаться? | Прошу прощения что сразу не пояснил-Естественно список создается в текстовом файле. Называться он будет например "список" (не принципиально) создаваться он будет в рабочем окне (или если есть возможность по выбору -другая панель) Quote: | 3) А почему ты не хочешь использовать для этого средства Экселя? Займет тридцать секунд. Импорт, нумерация, экспорт. | Можно конечно попробовать и xl но если есть возможность упростить с помощью скрипта, то было бы удобнее - например создал кнопку - изменил например ссылку и создал нужное количество адресов.
Я для начала сделал так - Создал в рабочей директории с помощью скрипта 250 пустых папок, переименовал их, скопировал имена в буфер и создал текстовой файл с именами в списке. ну а далее осталось только добавить одинаковые символы и все. но как-то мне кажется это не совсем удобно. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Mon May 30, 2011 21:29 Post subject: |
|
|
Code: | @echo off &chcp 1251 >nul
rem Пример параметров для ТС: %P%N 250 "%T"
if "%~2"=="" (echo Use: %0 address.txt 100500 &pause &goto :eof)
set /p addr=<%1
cd.>"%~3%~n1.%~2.txt"
for /l %%c in (1,1,%2) do (>>"%~3%~n1.%~2.txt" echo:%addr%%%c/)
|
|
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Tue May 31, 2011 00:57 Post subject: |
|
|
Спасибо Tol!k - батник работает!
Добавлено спустя 11 минут:
Да и кстати. какие параметры должны быть для создания такого же файла в той же директории что и файл со ссылкой? Пробую разные варианты все равно создает в противоположной панели |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue May 31, 2011 01:18 Post subject: |
|
|
"%T" поменять на "%P". Cм. справку.
зы: поспешил я тут, видимо, с матчастью. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 16, 2011 15:36 Post subject: |
|
|
Tol!k - а что нужно изменить в батнике, что-бы номера создавалить с символом / перед номером То-есть, Батник отлично работает когда ссылка имеет вид Code: | http://адресс/6/movies/ | а когда адресс заканчивается без наклонной черты, Code: | http://адресс/6/movies | то номер присоединяется к букве? Пытался менять значения методом тыка, что-то не выходит. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sat Jul 16, 2011 18:00 Post subject: |
|
|
for /l %%c in (1,1,%2) do (>>"%~3%~n1.%~2.txt" echo:%addr%/%%c/)
%addr% — адрес
%%c — счётчик |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 16, 2011 18:14 Post subject: |
|
|
shveicar
Code: | ' Создание списка c добавлением строк из строки
' выделенного файла по схеме: <строка>/<№ счётчика>/
' Параметры: %V "путь к создаваемому файлу" <первый № счётчика> <число строк>
' Пример: %V "%PCписок_для_"%N 1 250
'=======================================================
With CreateObject("Scripting.FileSystemObject")
Set File = .OpenTextFile(WScript.Arguments(0),1)
Set List = .OpenTextFile(WScript.Arguments(1),8,True)
End With
Str = File.ReadLine
For i=WScript.Arguments(2) to Abs(WScript.Arguments(2))+Abs(WScript.Arguments(3))-1
If Right(Str,1)="/" Then
List.WriteLine Str & i & "/"
Else
List.WriteLine Str & "/" & i & "/"
End If
Next
List.Close
WScript.Quit | Могу, в принципе, для удобства добавить окна с вопросами, с чего начинать и сколько строк создавать. Может пригодиться в некоторых ситуациях.
Last edited by Flasher on Sun Jul 17, 2011 00:06; edited 2 times in total |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 16, 2011 19:19 Post subject: |
|
|
Добрый вечер. Спасибо за ответ. Пытаюсь запустить скрипт что-то не идет. строка 7 символ 3 путь не найден. код кнопки Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\html\sozdanie_faila_dobavlenie_strok.vbs
%V %PCписок_для_%N 1 250
C:\WINDOWS\System32\WScript.exe
sozdanie_faila_dobavlenie_strok
0
-1
| пробовал также полный путь в ковычках, и с расширением .txt- тот же результат. И конечно было бы удобнее если скрипт был с окнами(так, как количество строк в каждом случае может быть разное), а менять каждый раз кнопку не совсем удобно. Спасибо. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 16, 2011 19:33 Post subject: |
|
|
shveicar
TC когда обновлялся последний раз? Тот же случай. %V меняем на %P%N. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sat Jul 16, 2011 19:43 Post subject: |
|
|
Quote: | Пример: %V %PCписок_для_%N 1 250 |
Не будет работать с пробелами в путях
shveicar wrote: | было бы удобнее если скрипт был с окнами(так, как количество строк в каждом случае может быть разное), а менять каждый раз кнопку не совсем удобно. |
Параметры Code: | ? %P%N "%PCписок_для_%O.%E" 1 250 |
|
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 16, 2011 19:43 Post subject: |
|
|
Спасибо- Flasher, с %P%N все заработало. А TС у меня 7.55 portabl - менять пока не собираюсь.
Last edited by shveicar on Sat Jul 16, 2011 20:56; edited 3 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jul 16, 2011 19:52 Post subject: |
|
|
С окнами:
Code: | ' Создание списка c добавлением строк из строки
' выделенного файла по схеме: <строка>/<№ счётчика>/
' Параметры: %P%N "<путь к создаваемому файлу>"
' Пример: %P%N "%PCписок_для_"%N
'=======================================================
With CreateObject("Scripting.FileSystemObject")
Set File = .OpenTextFile(WScript.Arguments(0),1)
Set List = .OpenTextFile(WScript.Arguments(1),8,True)
End With
N = InputBox("Введите первый номер счётчика", "Добавление строк в список")
Count = InputBox("Введите число строк", "Добавление строк в список")
If Len(N) = 0 Or Len(Count) = 0 Then WScript.Quit
Str = File.ReadLine
For i = N to Abs(N)+Abs(Count)-1
If Right(Str,1) = "/" Then
List.WriteLine Str & i & "/"
Else
List.WriteLine Str & "/" & i & "/"
End If
Next
List.Close
WScript.Quit |
Добавлено спустя 2 минуты:
Tol!k wrote: | Не будет работать с пробелами в путях | В папках да, но не в файлах. Исправил.
Last edited by Flasher on Sun Jul 17, 2011 00:04; edited 4 times in total |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Sat Jul 16, 2011 19:54 Post subject: |
|
|
Вот это вещь! Огромное спасибо! |
|
Back to top |
|
|
|