Компьютерный форум 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=354864)

id342181564@vk 30-01-2024 07:54 3023440

Скрипт для работы с текстом в файле
 
Всем доброго дня!

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

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

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

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

DJ Mogarych 30-01-2024 08:11 3023441

Powershell v5
Код:

(dir "$PSScriptRoot\dir" -File -Exclude "file1.ext","file2.ext").BaseName |Out-File "$PSScriptRoot\dir\filelist.txt"

id342181564@vk 30-01-2024 13:11 3023458

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

Скрытый текст
@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 не подходит для задачи.

YuS_2 30-01-2024 14:49 3023464

Цитата:

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

Чем же?

Serguei Kouzmine 31-01-2024 04:06 3023493

Цитата:

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

не можем |не умеем |не хотим (нужное подчеркнуть)

id342181564@vk 31-01-2024 10:37 3023506

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

Sham 31-01-2024 11:00 3023507

живе 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.


Время: 05:19.

Время: 05:19.
© OSzone.net 2001-