最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)批量重命名文件

 更新時間:2024年12月12日 10:42:02   作者:Face  
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實現(xiàn)批量重命名文件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下

批量重命名圖片

改下載的圖片中的名稱時候,感覺一個個修改太麻煩了,就像寫個腳本執(zhí)行一下,順便多熟悉一下node的fs模塊

一次性對某一文件夾下多個圖片文件進(jìn)行名稱的修改與調(diào)整,不用逐一手動重命名圖片,快速更新文件名,執(zhí)行腳本自動修改圖片名

自動“9a9f0a7f89a7.jpg”,之類的圖片名為002.jpg

我這里將設(shè)置文件重命名為從0 ~ 999,可以根據(jù)要命名的圖片數(shù)量自定義設(shè)置。

reName.js代碼如下:

const fs = require("fs");
const path = require("path");
// 要修改的文件路徑
const folderPath = "./testPicture";
const imgType = ["jpg", "png", "jpeg", "gif", "bmp", "tiff", "ico", "webp"];

let count = 0;
function pad(num, size) {
	let s = num + "";
	while (s.length < size) s = "0" + s;
	return s;
}

fs.readdir(folderPath, (err, files) => {
	try {
		if (err) {
			console.error("讀取文件出錯", err);
			return;
		}
		files.forEach((file) => {
			// 如果用 path.extname() 獲取擴(kuò)展名,注意名稱為空的額外處理
			const ext = file.split(".").at(-1).toLowerCase();		
			if (imgType.includes(ext)) {
				const oldFilePath = path.join(folderPath, file);
				const newFileName = pad(count, 3) + "." + ext;
				const newFilePath = path.join(folderPath, newFileName);
				fs.rename(oldFilePath, newFilePath, (err) => {		
					if (err) console.error("重命名文件出錯", err);
				});
				count++;
			}
		});
		console.log(`重命名完成,共重命名 ${count} 個文件`);
	} catch (error) {
		throw new Error(error);
	}
});

如果要修改重命名其他文件,修改imgType中的文件類型執(zhí)行腳本即可

  • 執(zhí)行腳本直接使用 node 運(yùn)行即可node reName.js
  • 運(yùn)行之前先備份?。?!

方法補(bǔ)充

除了上文的方法,小編還為大家整理了一些其他JavaScript重命名文件的方法,有需要的可以了解下

方法一:

'use strict'

let fs = require('fs');
let args = process.argv;
let dist = 'dist';
let src = 'src';
let index = 0;
let ignore = '';

// 目標(biāo)路徑
dist = args[2];
// 名字前綴
src = args[3];
// 遞增后綴
index = args[4] || 1;
// ? 忽略的文件
ignore = args[5] || "";

let files = fs.readdirSync(dist);
let sortValue = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
files.sort(function (a, b) {
    let index = -1;
    for (let i = sortValue.length - 1; i >= 0; i--) {
        index = a.indexOf(sortValue[i]);
        if (index != -1) {
            // console.log("a: ", a, " i: ", i, " index: ", index);
            break;
        }
    }

    if (index == -1) {
        return 0;
    }
    else {
        let aid = parseInt(a.substring(index));
        let bid = parseInt(b.substring(index));
        if (aid == NaN || bid == NaN) {
            return 0;
        }
        else {
            return aid - bid;
        }
    }
});

for (let i = 0; i < files.length; i++) {
    if (ignore !== "" && files[i].indexOf(ignore) === -1) {
        continue;
    }
    let stat = fs.statSync(dist + "\\" + files[i]);
    let runRename = function (stat) {
        if (stat.isFile()) {
            let prefix = dist + "\\";
            let suffix = files[i].substring(files[i].indexOf("."));
            let oldName = prefix + files[i];
            let newName = prefix + src + index + suffix;
            fs.renameSync(oldName, newName);
            index++;
        }
    };
    runRename(stat);
}

方法二:js 批量修改文件名后綴

在需要修改的文件夾除創(chuàng)建一個js文件 ,通過 node .\****.js 運(yùn)行或在創(chuàng)建一個.bat文件:node .****.js pause 后雙擊

記得修改dirName

// 引入 fs 文件系統(tǒng)模塊
let fs = require('fs')

const dirName = 'mus' // 讀取目標(biāo)文件夾名稱
const reg = /(?<=[.])[a-z]+/ // 文件后綴 匹配規(guī)則

// 讀文件夾,獲取文件名列表
let fileList = fs.readdirSync(dirName)

// 過濾出想要的文件類型
let resultList = fileList.reduce((pev, cur) => {
  // 獲取后綴
  const curPicType = cur.match(reg)[0]
  if (['mgg', 'flac', 'ogg', 'lrc'].includes(curPicType)) {
    pev.push(cur)
  }
  return pev
}, [])
console.log('文件列表', resultList)

// 循環(huán)當(dāng)前文件名列表,根據(jù)需要重寫名字
for (let i = 0; i < resultList.length; i++) {
  // 文件完整名稱
  const curFileName = resultList[i]
  // 后綴名
  const fileFormat = curFileName.match(reg)[0]
  // 去掉后綴的文件名
  const fileCode = curFileName.split('.')[0]


  // oldPath 原地址
  const oldPath = `./${dirName}/${curFileName}`
  // newPath 目標(biāo)地址
  let newPath = ''

  // 修改方式
  // 如果想根據(jù)不同條件,將文件分別放到不同的文件夾,按需更改 newPath 即可
  if (fileFormat == 'ogg' || fileFormat == 'mgg') {
    newPath = `./${dirName}/${fileCode}.mp3`
  } else {
    newPath = oldPath
  }

  // 確認(rèn)修改
  fs.rename(oldPath, newPath, (err) => {
    if (err) throw err;
    console.log(`修改成功 -- ${newPath}`);
  })
}

到此這篇關(guān)于JavaScript實現(xiàn)批量重命名文件的文章就介紹到這了,更多相關(guān)JavaScript重命名文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js FLASH幻燈片字符串中有連接符&的處理方法

    js FLASH幻燈片字符串中有連接符&的處理方法

    一般情況下我們在FLASH幻燈片字符串中有連接符時點擊鏈接就會不正常,造成鏈接中的參數(shù)丟失,那么就需要用encodeURIComponent來對鏈接地址進(jìn)行編碼
    2012-03-03
  • js實現(xiàn)雙擊圖片放大單擊縮小的方法

    js實現(xiàn)雙擊圖片放大單擊縮小的方法

    這篇文章主要介紹了js實現(xiàn)雙擊圖片放大單擊縮小的方法,涉及js操作圖片及onclick與ondblclick事件的使用技巧,需要的朋友可以參考下
    2015-02-02
  • JS仿淘寶搜索框用戶輸入事件的實現(xiàn)

    JS仿淘寶搜索框用戶輸入事件的實現(xiàn)

    這篇文章主要介紹了JS仿淘寶搜索框用戶輸入事件的實現(xiàn),需要的朋友可以參考下
    2017-06-06
  • JS在Array數(shù)組中按指定位置刪除或添加元素對象方法示例

    JS在Array數(shù)組中按指定位置刪除或添加元素對象方法示例

    這篇文章主要給大家介紹了關(guān)于JS在Array數(shù)組中按指定位置刪除或添加元素對象的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 利用JavaScript優(yōu)雅地實現(xiàn)每5秒輪詢請求功能

    利用JavaScript優(yōu)雅地實現(xiàn)每5秒輪詢請求功能

    在做實時監(jiān)控系統(tǒng)時,比如服務(wù)器狀態(tài)面板、訂單處理中心或物聯(lián)網(wǎng)設(shè)備看板,每隔 5 秒自動拉取最新數(shù)據(jù)是再常見不過的需求了,但是會遇到好多問題今天我就以一個運(yùn)維監(jiān)控平臺的真實場景為例,帶你從能用做到好用,需要的朋友可以參考下
    2025-07-07
  • 一文帶你了解promise并解決回調(diào)地獄

    一文帶你了解promise并解決回調(diào)地獄

    這篇文章主要介紹了Promise解決回調(diào)地獄問題,文中有詳細(xì)的代碼示例,具有一定的參考價值,需要的朋友可以閱讀參考
    2023-04-04
  • Javascript中什么是對象以及對象的使用方法詳解

    Javascript中什么是對象以及對象的使用方法詳解

    文章介紹了JavaScript中的對象數(shù)據(jù)類型,包括對象的聲明語法、屬性和方法的組成,以及如何聲明一個包含特定信息的產(chǎn)品對象
    2025-11-11
  • TypeScript是什么,與javacript ES6有哪些區(qū)別?

    TypeScript是什么,與javacript ES6有哪些區(qū)別?

    TypeScript是JavaScript的超集,他可以編譯稱純JavaScript.TypeScript可以在任何瀏覽器,任何計算機(jī)和操作系統(tǒng)上運(yùn)行,并且是開源的,TypeScript不是要取代 ES6,而是在ES6基礎(chǔ)上增加類型系統(tǒng),大多數(shù)現(xiàn)代Web開發(fā)React、Vue、Angular等,TypeScript能顯著提高開發(fā)效率和代碼質(zhì)量
    2025-12-12
  • 淺談javascript中的閉包

    淺談javascript中的閉包

    Javascript中有幾個非常重要的語言特性——對象、原型繼承、閉包。其中閉包 對于那些使用傳統(tǒng)靜態(tài)語言C/C++的程序員來說是一個新的語言特性。本文將以例子入手來介紹Javascript閉包的語言特性,并結(jié)合一點 ECMAScript語言規(guī)范來使讀者可以更深入的理解閉包。
    2015-05-05
  • layui下拉列表select實現(xiàn)可輸入查找的方法

    layui下拉列表select實現(xiàn)可輸入查找的方法

    今天小編就為大家分享一篇layui下拉列表select實現(xiàn)可輸入查找的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評論

齐齐哈尔市| 凤冈县| 忻城县| 金乡县| 西吉县| 奉新县| 凤山县| 乌兰县| 岢岚县| 保定市| 扬中市| 庆云县| 怀集县| 青铜峡市| 阿拉善右旗| 江安县| 尉犁县| 连南| 宁陵县| 孟州市| 卢氏县| 安阳县| 济南市| 文登市| 舞钢市| 永康市| 法库县| 元朗区| 宁安市| 时尚| 南江县| 平度市| 苏尼特右旗| 丹东市| 万全县| 曲阳县| 惠来县| 太康县| 牙克石市| 乌恰县| 垦利县|