Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> работа с папками, переименовать папки
portos
сообщение 18.12.2020, 23:14
Сообщение #1


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



всем здравия , помогите решить задачу на lua

в "D:\4" находятся N количество папок
в текстовом документе "D:\1.txt" записаны новые названия папок в столбик
как переименовать папки на новые названия (папок может быть больше чем новых названий)
и после переместить только те папки ,в которых изменили названия в папку "D:\5"
заранее благадарю
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.12.2020, 2:22
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



Цитата
в текстовом документе "D:\1.txt" записаны новые названия папок в столбик

Новое название для конкретной папки?
Например, папку 123 переименовать в 123new или в любое имя из списка?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 19.12.2020, 2:40
Сообщение #3


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(cirus @ 19.12.2020, 1:22) *

Новое название для конкретной папки?
Например, папку 123 переименовать в 123new или в любое имя из списка?

имя из списка . допустим папка с именем - *Новая папка 1* ,взять из текста первую строку *ффф_ккк* и заменить ,чтобы папка называлась *ффф_ккк* ,и желательно переместить в другое место (D:\6). И так по списку из 1.txt пока он не станет пустой
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.12.2020, 2:53
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26702
Пользователь №: 16.971
Возраст: 29



код
Код
--lua
local ffi = require("ffi")
ffi.cdef[[ bool MoveFileA(const char* lpExistingFileName, const char* lpNewFileName); ]]

log 'clear' log 'mode compact'

local path = [[D:\4]]        -- путь к папке
local path_output = [[D:\5]] -- куда переместить новые папки
local path_txt = [[D:\1.txt]]  -- файл с новыми именами
local resultarray, count = dir (path, '', 'norecursion')
log('Всего файлов/папок: ' .. tostring(count))
log()

dircreate (string.format('%q', path_output))   -- создать папку куда перемещать переименованные папки

local name_folder = {}
local h_file = io.open(path_txt, 'r')
if h_file then
    for line in h_file:lines() do
        name_folder[#name_folder+1] = line
    end
    h_file:close()
    log('Имён в файле ' .. tostring(#name_folder))

    local count_folder_rename = 0
    for i=1, count do
        if resultarray[i][4] == '' then
            if count_folder_rename < #name_folder then
                -- переименование
                ffi.C.MoveFileA(resultarray[i][1], resultarray[i][2] .. name_folder[count_folder_rename+1])
                log(resultarray[i][1], resultarray[i][2] .. name_folder[count_folder_rename+1])

                -- перемещение
                ffi.C.MoveFileA(resultarray[i][2] .. name_folder[count_folder_rename+1], path_output  .. '\\' .. name_folder[count_folder_rename+1])
                log(resultarray[i][2] .. name_folder[count_folder_rename+1], path_output  .. '\\' .. name_folder[count_folder_rename+1])
                count_folder_rename = count_folder_rename + 1
                log()
            end
        end
    end
else
    log('Файл не открылся')
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 19.12.2020, 3:12
Сообщение #5


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



именно так ,спасибо

хотел у Вас узнать по другому скрипту ,с которым Вы мне помогли ,надо перейти в ту тему со скриптом ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.12.2020, 3:40
Сообщение #6


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2398
Пользователь №: 18.746



D:\4:
Цитата
Новая папка (1)
Новая папка (2)
Новая папка (3)

1.txt:
Цитата
qwe
asd

D:\4\Новая папка (1) -> D:\5\qwe
D:\4\Новая папка (2) -> D:\5\asd
D:\4\Новая папка (3) - не трогать
Так должно получиться?

Код
--lua
require"luaposh";log"clear"
PScode('void',{[[#}
$pathIN  = 'D:\4'
$pathOUT = 'D:\5'
$pathTxt = 'D:\1.txt'

$folders = gci -dir $pathIN
gc $pathTxt|ForEach{$i=0}{move $folders.fullname[$i++] "$pathOUT\$_"}
]]})


Сообщение отредактировал Fors1k - 19.12.2020, 4:06


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 19.12.2020, 3:56
Сообщение #7


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



выдаёт ошибку

2:46:35 37 (autosaved_37.txt, 0): Lua загружен.
2:46:35 37 (autosaved_37.txt, 0): a runtime error.
2: module 'luaposh' not found:
no field package.preload['luaposh']
no file '.\luaposh.lua'
no file 'C:\Users\portos\Downloads\lua\luaposh.lua'
no file 'C:\Users\portos\Downloads\lua\luaposh\init.lua'
no file
2:48:05 37 (autosaved_37.txt, 0): a runtime error.
2: module 'luaposh' not found:
no field package.preload['luaposh']
no file '.\luaposh.lua'
no file 'C:\Users\portos\Downloads\lua\luaposh.lua'
no file 'C:\Users\portos\Downloads\lua\luaposh\init.lua'
no file

скрипт cirus работает корректно

не кидайте предупреждение ,потому что со сполером ни как не получается отправить
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.12.2020, 4:05
Сообщение #8


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2398
Пользователь №: 18.746



Цитата(portos @ 19.12.2020, 3:56) *

выдаёт ошибку

Скачайте один раз архив
https://forum.uokit.com/index.php?showtopic=70167
И выполните update. Больше такая рошибка не появится
Цитата(portos @ 19.12.2020, 3:56) *

со сполером ни как не получается отправить

Почему так? Вот его тэг:
Код
[spoiler=abc]текст[/spoiler]

Тут, кстати, еще подсказка естьПрикрепленное изображение
У вас не срабатывает?

Сообщение отредактировал Fors1k - 19.12.2020, 4:09


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 19.12.2020, 4:23
Сообщение #9


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



ничего не происходит ,ошибка уже не показывает
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 19.12.2020, 4:30
Сообщение #10


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2398
Пользователь №: 18.746



Цитата(portos @ 19.12.2020, 4:23) *

ошибка уже не показывает
Это хорошо)
Цитата(portos @ 19.12.2020, 4:23) *

ничего не происходит

Пилот запускается от админа?
Полезные сведения -> Настройки перед использованием Проверьте пункты 1, 2 ,3 и перезапустите пилот.

Сообщение отредактировал Fors1k - 19.12.2020, 4:40


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 19.12.2020, 5:52
Сообщение #11


****

Apprentice
Сообщений: 181
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



закачал по новому пилот ,провёл все танцы с бубном . ничего не происходит )) скрипт от cirus работает как надо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.4.2024, 19:50
Designed by Nickostyle