Windows PowerShell批量替換檔名

2022-08-01 10:03:12 字數 2371 閱讀 2142

q:

假如資料夾有批量相似的檔名,如果檔名不符合需求了,要怎麼改呢,文件可以「ctrl + h」一鍵替換字元,系統檔名可不支援「ctrl + h」一鍵替換字元,動手能力強的已經乙個個手動在改了/滑稽,你是原始人嘛

如圖:

可以通過windows自帶的powershell寫指令碼來實現批量修改檔名

下面來實現一下

一、新建記事本,儲存為 ".ps1"檔案格式

a.開啟檔案寫入下面這段內容

注意:$path的路徑建議寫為二級目錄,比如"e:\test\test",而二級目錄的 test 資料夾下就放著你需要改名的檔案。如果路徑是"e:\test",test 目錄下有其它子目錄,且子目錄中也有滿足指令碼的 $filter 和 $oldtext 規則的檔案,那麼指令碼會將子目錄裡滿足規則的檔名也一併改了,所以建議把需要改名稱的檔案放到乙個資料夾裡,將這個資料夾放在二級目錄下

$path = ''   # 路徑:要改名稱的資料夾路徑

$filter = '' # 過濾器:要改名稱的檔案格式

$newtext = '' # 新字元:符合需求的字元

$oldtext = '' # 舊字元:現有的、不符合需求的字元

# 下面這段命令照抄即可

b.儲存,右鍵powershell執行,不出意外你應該看見乙個視窗一閃而過,檔名沒有發生任何改變

c.為什麼呢?因為powershell的預設執行策略是 restricted,這個策略不允許任何不被信任的指令碼執行,所以指令碼是執行失敗了

二、在windows裡搜尋 windows powershell ise 並以管理員身份執行

a.以命令的形式執行指令碼可以看到報錯資訊

# 使用絕對路徑或相對路徑執行指令碼

b.輸入以下命令:

# 檢視當前設定的執行策略,可以看到當前策略為 restricted

$ get-executionpolicy

# 使用下面的命令更改策略為 remotesigned

$ set-executionpolicy remotesigned

# 再次檢視當前設定的執行策略,可以看到當前策略為 remotesigned

c.使用命令執行 .ps1 指令碼

# 使用絕對路徑或相對路徑執行指令碼

$ .\script_path\**.ps1

# 或者將命令 copy 在終端中執行

$ ls "path" -include "filter" -recurse |foreach-object

d.見證奇蹟

三、收尾工作

a.將powershell的執行策略改回 restricted

# 將powershell的執行策略改回預設的 restricted

$ set-executionpolicy restricted

# 檢視當前設定的執行策略,可以看到當前策略為 restricted

linux sed 批量替換檔案內容

一 linux sed 批量替換多個檔案內容 sed i s oldstring newstring g grep oldstring rl yourdir 其中,grep oldstring rl yourdir是查尋目錄中檔案內容 如將indexeddb目錄裡的檔案內容替換 idbtransac...

linux下批量替換檔案

替換任意字元 sed s client inactivity timeout 99 client inactivity timeout g agent.xml.15 1 將agent.xml.15 中 client inactivity timeout 替換為 99 client inactivit...

BAT批量替換檔案內容

bat批量操作 1.批量替換指定檔案指定內容 案列 將test.txt文字中的inflie替換為outfile echo off setlocal enabledelayedexpansion set currcd dp0 set strold outfile set strnew infile f...