Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
Найти пустую папку. Но находит последюю в списке.
-
Есть список [[SPISOK]] , каждый элемент списка- это путь к определённой папке.
Нужно найти первую пустую (меньше 1 мб) папку и записать путь к ней в перем [[ITOG]] , но должно выполняться условие что после неё в списке [[SPISOK]]
стоит папка размером 100мб или больше.Пробовал Nodejs 18 пакет get-folder-size и функция getFolderSize но не заработало.
Использую Nodejs 18. Реализую определение размера папок с помощью встроенных инструментов fs.
Но получаю в переменной itog просто самую последнюю папку в списке, она весит 41 мб. ..не подпадая под условия быть меньше 1 мб и после нее должна в списке стоять папка более 100 мб что также не выполняется т к после неё нет ни одного элемента в списке.Код:
// Step 1 const fs = require('fs'); const path = require('path'); const spisok = [[SPISOK]]; // Declare variables let pytkpystoypapke = ""; // path to found folder with size less than 1000000 bytes let itog = ""; // path to found folder will be saved in this variable // Loop through all folders in list "spisok" for (let i = 0; i < spisok.length; i++) { let folderSize = fs.statSync(spisok[i]).size; // get size of current folder if (folderSize < 1000000) { // check if size is less than 1000000 bytes if (i < spisok.length - 1) { // check if there is another folder in list "spisok" let nextFolderSize = fs.statSync(spisok[i + 1]).size; // get size of next folder if (nextFolderSize > 1000000) { // check if next folder size is greater than 1000000 bytes pytkpystoypapke = spisok[i]; // save path to current folder in "pytkpystoypapke" break; // exit the loop } } else { pytkpystoypapke = spisok[i]; // save path to current folder in "pytkpystoypapke" break; // exit the loop } } } itog = pytkpystoypapke; // save path to found folder in "itog" variable [[ITOG]] = pytkpystoypapke; // save path to found folder in "itog" variable // Output result console.log(itog); -
Сам разобрался, может кому-то будет полезно, вот готовый код, выполнять в кубике node.js (я выполнял в node18) .... кстати, больше 80% кода сгенерирована нейронкой https://chat.openai.com/chat
Задача выполняется двумя кубиками node.js
1) Сначала ищем из каталога все папки и переворачиваем этот список . Полученный список сохраняем в [[SPISOK]]
// Step 1 // Get the path to the "D:\\2 отправленое\\АНАЛИЗ" folder const path = "D:\\2 отправленое\\АНАЛИЗ"; // Create an empty list to store the paths to the folders inside the "creep-analysis" folder let spisok = []; // Use the fs (file system) module to read the contents of the "creep-analysis" folder const fs = require('fs'); const files = fs.readdirSync(path); // Loop through the contents of the "creep-analysis" folder and add the paths to the folders to the "spisok" list files.forEach((file) => { // Check if the current item is a folder if (fs.lstatSync(path + '/' + file).isDirectory()) { // Add the path to the folder to the "spisok" list spisok.push(path + '/' + file); } }); // Step 2 // Sort the "spisok" list in descending order by the number that each folder name starts with spisok.sort((a, b) => { // Get the folder name from the path of each item in the list const folderNameA = a.split('/').pop(); const folderNameB = b.split('/').pop(); // Extract the number that each folder name starts with const numberA = parseInt(folderNameA.match(/^\d+/)[0]); const numberB = parseInt(folderNameB.match(/^\d+/)[0]); // Compare the numbers and sort the list in descending order return numberB - numberA; }); // Step 3 // Save the sorted "spisok" list to the "itog" variable [[SPISOK]] = spisok;2) Далее ищем папку которая имеет вес меньше 1 мб и при условии что в каталоге где она лежит следующей будет папка с весом >=100мб
Готовый рабочий код, полный путь к итоговой папке сохраняется в [[PYT_K_PROSHLOY_PYSTOY_PAPKE]]:// Declare the list "spisok" let spisok = [[SPISOK]]; const fs = require('fs'); // Use a for loop to go through all elements of the list "spisok" for (let i = 0; i < spisok.length; i++) { let folderPath = spisok[i]; // Assign each value of the loop to the variable "folderPath" //console.log(folderPath); // Print the value of "folderPath" in the log // шаг 1. начитаем получать размер папки путь к ней лежит в folderPath function getFolderSize(path) { let totalSize = 0; const files = fs.readdirSync(path); for (let i = 0; i < files.length; i++) { const stats = fs.statSync(path + '//' + files[i]); if (stats.isFile()) { totalSize += stats.size; } else if (stats.isDirectory()) { totalSize += getFolderSize(path + '//' + files[i]); } } return totalSize; } const folderSize = getFolderSize(folderPath); // закончили получать размер папки "folderPath" // и размер записали в "folderSize" if (folderSize < 1000000); { // шаг 2. получаем размер папки лежащей ниже let nextElement = spisok[i + 1]; function getFolderSize(path) { let totalSize = 0; const files = fs.readdirSync(path); for (let i = 0; i < files.length; i++) { const stats = fs.statSync(path + '//' + files[i]); if (stats.isFile()) { totalSize += stats.size; } else if (stats.isDirectory()) { totalSize += getFolderSize(path + '//' + files[i]); } } return totalSize; } const nextFolderSize = getFolderSize(nextElement); // закончили получать размер папки лежащей ниже и запись // записали размер в "nextFolderSize" if (nextFolderSize > 100000000) { console.log(folderPath); //console.log(folderSize); //console.log(folderPath); [[PYT_K_PROSHLOY_PYSTOY_PAPKE]] = folderPath; break } } }
-
-
-
-
Сохранить в папку
Moved Поддержка -