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

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

Nun-Nun 12-05-2009 23:36 1116877

Как скопировать имя файла из текстового файла в код батника и т.д.
 
Задача вот какого рода: есть текстовый файл с перечнем имён exe-файлов, которые нужно распаковать с ключами /Q /C /T:C:\Temp. Сложность здесь в том, что необходимо имена exe-шников взять из этого текстового файла и вставить в батник, прчём текстовый файл расположен в одной папке, exe-шники в другой, а распаковать их нужно каждый в свою отдельную временную папку (это чтобы не перезаписывалось одноимённое содержимое, извлечённое из разных exe-шников).

Vadikan 13-05-2009 00:06 1116902

Аналогичный вопрос [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле

Nun-Nun 13-05-2009 11:19 1117173

Vadikan, нет, это не подходит. Там же использовалась внешняя программа wget, обрабатывающая строки с URL, а в моём случае строки - это имена exe-файлов и тут для распаковки должен запускаться каждый exe-шник с нужными ключами, а как это сделать корректно - не знаю. Всё, что мне по этому поводу удалось найти приводит к распаковке в одну общую папку с перезаписью извлечённых файлов. Видимо нужен вариант без использования команды FOR или какое-нибудь более сложное её применение.

Vadikan 13-05-2009 11:53 1117213

Цитата:

Цитата Nun-Nun
это не подходит. Там же использовалась внешняя программа wget, обрабатывающая строки с URL »

Не вижу разницы.
Код:

@Echo Off
SetLocal EnableExtensions
Set FN=input.txt
For /F "Delims=" %%I In (%FN%) Do %%I /Q /C /T:C:\Temp


Vadikan 13-05-2009 12:19 1117243

Цитата:

Цитата Nun-Nun
а распаковать их нужно каждый в свою отдельную временную папку »

Тогда так:
Код:

@Echo Off
SetLocal EnableExtensions
Set FN=input.txt
For /F "Delims=" %%I In (%FN%) Do md C:\Temp\%%I & %%I /Q /C /T:C:\Temp\%%I


Nun-Nun 13-05-2009 12:40 1117259

Vadikan, вот спасибо! Действительно работает!
Если не сложно, ответьте ещё на такой вопрос: во временные папки были извлечены файлы, в том числе файлы .msp, которые необходимо переименовать в соответствии с именами exe-шников и перенести в отдельную общую папку. Как это сделать?

Nun-Nun 13-05-2009 13:28 1117298

Ура, всё получилось!!!!!!!

Код:

Set NamePathTemp=C:\Temp\Temp
Set NamePath=C:\Temp
MD %NamePathTemp%
Dir /b *.exe >"%NamePathTemp%\1.txt"
For /F "Delims=" %%I In (%FN%) Do md %NamePathTemp%\%%~nI & %%I /Q /C /T:C:\Temp\Temp\%%~nI & REN %NamePathTemp%\%%~nI\*.msp %%~nI.msp & Move %NamePathTemp%\%%~nI\*.msp %NamePath% & RD /S /Q %NamePathTemp%



Время: 18:45.

Время: 18:45.
© OSzone.net 2001-