|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание текстовых файлов с именами папок |
|
CMD/BAT - [решено] Создание текстовых файлов с именами папок
|
Пользователь Сообщения: 141 |
Профиль | Отправить PM | Цитировать Появилась такая задача для которой необходим батник либо PowerShell который можно запустить как батник.
В директории C:\Users\Имя\AppData\Roaming\MyPrograms имеются н-ное количество папок с различными именами и в каждой папке по одному "*.exe" файлу. Имена у всех *.exe будут разные. После запуска скрипта нужно в папке C:\Users\Имя\AppData\Roaming\MyPrograms создать текстовые файлы с именами папок со следующим содержанием. Буду очень признателен за помощь. |
|
------- Отправлено: 17:56, 18-12-2022 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать После долгих мучений смог пройти пол пути:
@echo off set "src=%APPDATA%\MyPrograms" set "dest=%APPDATA%\MyPrograms" set "files=*.exe" set "saveto=.txt" 2>nul (md "%dest%" for /f "delims=" %%i in ('dir/ad/b "%src%"') do >"%dest%\%%i%saveto%" dir/a-d/b/s "%src%\%%i\%files%") exit C:\Users\имя\AppData\Roaming\MyPrograms\FolderName\FileName.exe мне необходимо что-бы в начале пути стояло: Filename=C:\Users\имя\AppData\Roaming\MyPrograms\FolderName\FileName.exe и еще прописать в каждом создаваемом файле в самом верху [ENGINE] а потом уже Filename=C:\Users\имя\AppData\Roaming\MyPrograms\FolderName\FileName.exe Может кто выручить ? |
------- Отправлено: 22:42, 21-12-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать @Echo Off cls >nul chcp 1251 Set "BoxIn=%APPDATA%\MyPrograms" Set "Mask=*.exe" Set "Ext=txt" If Not Exist "%BoxIn%\" (Echo "%BoxIn%" Not found &Pause &Exit /B 2) For /D %%d In ("%BoxIn%\*.*") Do ( For %%f In ("%%d\%Mask%") Do ( >"%BoxIn%\%%~nxd.%Ext%" ( Echo [ENGINE] Echo %%~nf Echo Author=Developer Echo Filename=%%f ) ) ) pause Exit /B |
------- Отправлено: 16:59, 22-12-2022 | #3 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать Вот супер!
тут дописал Echo [ENGINE] Echo Name=%%~nf Echo Author=Developer Echo Filename=%%f Получилось именно то что было задумано! Благодарю! |
------- Отправлено: 17:26, 22-12-2022 | #4 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Уважаемый megaloman Скрипт работает на ура но если возможно его доработать было-бы супер. Вот эта строка Echo Filename=%%f создает небольшую проблему а именно: в полученном файле появляется весь путь от ехе-шника а хотелось бы урезать следующим образом: К примеру с этим батником я получаю результат [ENGINE] Name=Weiss 2.1 pext Author=Developer Filename=C:\Users\имя\AppData\Roaming\ChessBase\Engines.UCI\Weiss_2.1\Weiss 2.1 pext.exe [OPTIONS] UCI_Chess960=true Я могу делать так: Echo Filename=.\Weiss_2.1\%%~nf.exe и получаю что хочу, однако имена папок всегда разные. Как бы определить и прописать путь только той папки где лежит .exe файл? |
||
------- Отправлено: 17:11, 14-04-2024 | #5 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать @Echo Off cls >nul chcp 1251 Set "BoxIn=%APPDATA%\MyPrograms" Set "Mask=*.exe" Set "Ext=txt" If Not Exist "%BoxIn%\" (Echo "%BoxIn%" Not found &Pause &Exit /B 2) For /D %%d In ("%BoxIn%\*.*") Do ( For %%f In ("%%d\%Mask%") Do ( >"%BoxIn%\%%~nxd.%Ext%" ( Echo [ENGINE] Echo Name=%%~nf Echo Author=Developer Echo Filename=.\%%~nxd\%%~nxf ) ) ) pause Exit /B |
------- Отправлено: 20:18, 14-04-2024 | #6 |
Пользователь Сообщения: 141
|
Профиль | Отправить PM | Цитировать megaloman,
Отлично. Я всякий раз после запуска скрипта в ручную редактировал эту строчку в сотнях файлов. Огромное спасибо! |
------- Отправлено: 20:42, 14-04-2024 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - bat создание папок и подпапок с файлами с именами из определенных символов | Gutt | Скриптовые языки администрирования Windows | 1 | 28-09-2018 22:02 | |
PowerShell - [решено] Создание папок с именами сотрудников, используя «Powershell» | boffin2 | Скриптовые языки администрирования Windows | 2 | 29-02-2016 08:57 | |
CMD/BAT - Создание папок и файлов со с случайными именами. | Kirstem | Скриптовые языки администрирования Windows | 0 | 26-04-2015 20:06 | |
CMD/BAT - [решено] Создание папок по дате получения файлов и перемещение в них файлов | KamikadZZe | Скриптовые языки администрирования Windows | 1 | 01-09-2011 14:15 | |
Прочие - Создание образа из текстовых файлов | samurai | Программное обеспечение Windows | 3 | 23-04-2009 21:24 |
|