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

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

Ответить
Настройки темы
Любой язык - [решено] Скрипт для работы с текстом в файле

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


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

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


Изменения
Автор: id342181564@vk
Дата: 30-01-2024
Всем доброго дня!

Возможно ли реализовать на VBS\CMD следующий сценарий и как это лучше сделать?

1. Необходимо получить список файлов из папки "root\dir", исключая расширения в один столбец без посторонних данных. Root - корневая папка, где лежит скрипт.

2. Исключить конкретные файлы из списка (не более двух), например "root\dir\file1.ext","root\dir\file2.ext"

3. Записать результат в простой текстовый файл root\dir\filelist.txt

Отправлено: 07:54, 30-01-2024

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell v5
Код: Выделить весь код
(dir "$PSScriptRoot\dir" -File -Exclude "file1.ext","file2.ext").BaseName |Out-File "$PSScriptRoot\dir\filelist.txt"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 08:11, 30-01-2024 | #2



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

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


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


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

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


Пока реализовал идею так:

Скрытый текст
@echo off
1. - получаем список файлов в TXT
dir /b root\dir\*.spc>root\cfg\filelist.txt
2. -убираем строки defaultconfig.spc и defaultprofile.spc, затем сохраняем временный вариант
type root\cfg\filelist.txt | findstr /v defaultconfig.spc | findstr /v defaultprofile.spc> root\cfg\filelist.txt.tmp
3. -удаляем оригинал TXT
del root\cfg\filelist.txt
4. -заменяем во временном ".scp" на пустоту и сохраняем конечный файл
gsar -s".scp" -r"" -f root\cfg\filelist.txt.tmp root\cfg\filelist.txt
5. -удаляем временный
del root\cfg\filelist.txt.tmp
6.-смотрим результат в консоли
@type root\cfg\filelist.txt
echo.&&pause


Работу с текстом выполняет утилита qsar. Получиться обойтись без нее средствами VBS, например? Powershell не подходит для задачи.

Последний раз редактировалось id342181564@vk, 30-01-2024 в 13:31.


Отправлено: 13:11, 30-01-2024 | #3


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата id342181564@vk:
Powershell не подходит для задачи. »
Чем же?

-------
scio me nihil scire. Ѫ


Отправлено: 14:49, 30-01-2024 | #4


Старожил


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

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


Цитата id342181564@vk:
Powershell не подходит для задачи. »
не можем |не умеем |не хотим (нужное подчеркнуть)

Отправлено: 04:06, 31-01-2024 | #5


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


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

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


Winpe без интеграции ps.

Отправлено: 10:37, 31-01-2024 | #6


Deadooshka


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

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


живе javascript, как говорится.
Код: Выделить весь код
@set @bat=1 /*
@echo off
cscript //nologo //e:jscript %0 %*
@exit /b %errorlevel%
*/
(function() {
	var fso = WSH.CreateObject('Scripting.FileSystemObject');
	var script_folder = fso.GetParentFolderName(WSH.ScriptFullName);
	var folder = fso.GetFolder(script_folder + '\\dir');
	var log = folder.Path + '\\filelist.txt';
	var exclude = /^(?:file1\.ext|file2\.ext)$/i;
	var n, a = [];

	WSH.Echo('got folder', folder);

	iter(folder.Files, function(i) {
		if (exclude.test(i.Name)) return;
		n = i.Name.replace(/\.[^.]*$/, '');
		//WSH.Echo(n);
		a.push(n);
	});

	var fw = fso.OpenTextFile(log, 2, true, -2);
	if (!fw) {
		WSH.Echo('failed to create', log);
		WSH.Quit(1);
	}
	fw.Write(a.join('\n'));
	fw.Close();
	WSH.Echo('file list written to', log);

	function iter(obj, fn) {
		for (var enu = new Enumerator(obj);
			!enu.atEnd();
			enu.moveNext()
		) fn(enu.item());
	}
})();
можно сохранить как .bat.

Последний раз редактировалось Sham, 31-01-2024 в 11:39.


Отправлено: 11:00, 31-01-2024 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - скрипт для замены текста в файле batyaPS Скриптовые языки администрирования Windows 19 10-01-2015 06:27
CMD/BAT - [решено] Подскажите скрипт или утилиту для перевода текста в txt-файле в другую раскладку Trueman777 Скриптовые языки администрирования Windows 7 23-09-2011 22:43
[решено] Работа с текстом (сравнить строки в файле) sashadeg AutoIt 16 14-02-2010 00:45
[решено] Скрипт для удаления нужных слов в ini файле Pozia AutoIt 23 27-10-2009 18:42
программа, с помошью кот. можно сверить текст на картинке с текстом в текстовом файле scissors Программное обеспечение Windows 1 03-10-2007 22:43




 
Переход