Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Корректировка кода что б не зависеть от жесткого пути к имени файла

Ответить
Настройки темы
CMD/BAT - [решено] Корректировка кода что б не зависеть от жесткого пути к имени файла

Новый участник


Сообщения: 40
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код, представленный ниже, отлично справляется со своей задачей перемешивания строк в файле. Проблема в том, что у него в условиях жестко задаются пути к файлам in/out. В приведенном примере у меня задан путь "...\MPL\Chillout\Chillout.alb". И естественно обрабатывается только этот файл. У меня же в папке "MPL" лежит 20 подпапок с разными названиями и в каждой лежит файл "*.alb" с таким же именем, как и папка. Мне нужна обработка всех файлов "*.alb" во всех подпапках папки "MPL".

Код: Выделить весь код
@echo off
set "in=E:\MIX\MPL\Chillout\Chillout.alb"
set "out=E:\MIX\MPL\Chillout\Chillout.alb"
 
setlocal enabledelayedexpansion
 
for /f "usebackq tokens=1,2*" %%i in ("%in%") do (
 set $%%j$!random!=%%i %%j %%k
 )
 
for /f "tokens=1,2 delims=$=" %%i in ('set $') do (
 if not "%%i"=="!x!" (
  set /a m+=1
  set x=%%i
 )
 set !m!$!random!=!$%%i$%%j!
 )
 
for /l %%i in (1 1 %m%) do (
 set $random=!random!
 for /f "delims==" %%j in ('set %%i$') do (
  set !$random!$$!random!=!%%j!
  )
 for /f "delims==" %%j in ('set !$random!$$') do (
  set /a n+=1
  set $$!n!$!random!=!%%j!
  )
 set n=
 ) 
 
>"%out%" (
for /f "tokens=2 delims==" %%i in ('set $$') do (
 echo %%i
 )
)
 
exit /b

Отправлено: 15:39, 26-02-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
krokradio, А что вообще вы хотите получить в итоге? »
Вооот. С этого надо было начинать .

Отправлено: 16:39, 27-02-2016 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


krokradio, Я правильно понял, что нужно найти все *.alb и перемешать их содержимое?
Код: Выделить весь код
@echo off
setlocal

for /f "tokens=*" %%i in ('dir /b /s E:\MIX\MPL\*.alb') do (

    for /f "tokens=*" %%j in ('type "%%i"') do call:set_random "%%j"
    call:set_content "%%i"

)

goto:eof

:set_random
set "line_%random%=%~1"
goto:eof

:set_content

1>%1 (

for /f "tokens=2* delims==" %%i in ('set line_') do echo %%i

)

for /f "tokens=1 delims==" %%i in ('set line_') do set "%%i="
PS. Проверил на тестовых *.txt

Последний раз редактировалось Foreigner, 27-02-2016 в 17:31.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:07, 27-02-2016 | #12


Новый участник


Сообщения: 40
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner, господи, мил человек, слава тебе! Ты все правильно понял! И оно работает так как нужно! Огромное тебе спасибо!

Отправлено: 18:13, 27-02-2016 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Корректировка кода что б не зависеть от жесткого пути к имени файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Запуск пакетного файла от имени администратора SANIOK_AV Microsoft Windows 7 0 15-01-2014 13:07
CMD/BAT - Переменная в батнике, зависимая от имени файла russur Скриптовые языки администрирования Windows 14 25-05-2012 20:45
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? axmed0207 Скриптовые языки администрирования Windows 1 19-01-2012 06:14
Delphi - Корректировка текстовго файла Hardip Программирование и базы данных 1 29-11-2010 20:46
Разное - Как сделать и можно ли что бы не от имени администратора заводить программы dima1981 Microsoft Windows 7 2 07-05-2009 21:28




 
Переход