2014-11-06 72 views
1

我目前有問題想找到一種方法來創建一個小批處理,它將重命名特定文件夾的所有文件。這裏有一個例子:使用批處理/ Powershell修改文件日期

ID32432 - 文件的名稱 - 2014年1月31日

我試圖創建一個批處理是能夠通過2015年1月31日 修改2014年1月31日有沒有辦法做到這一點?

在此先感謝。 !

PS:有誰知道我可以添加一個正則表達式到我的PowerShell,以確保我正在替換這種類型的日期? DD.MM.YYYY

然後我想增加YYYY + 1,這看起來應該是這樣我猜:"\d{2}.\d{2}.\d{4}"

這是我最初的PowerShell代碼:

Dir | Rename-Item -NewName { $_.name -replace "2014","2015" } 
+0

所以要遞增一年?這一年總是在文件名的末尾? – npocmaka 2014-11-06 08:33:32

+0

是的,我想增加一年。 順便說一下,日期並不總是在最後,但始終由「。」分隔。 – Sindar 2014-11-06 08:34:32

+0

然後是日期總是第三個分隔部分(按'-')。我需要一個更具體的模式來獲取日期。 – npocmaka 2014-11-06 08:46:41

回答

1

如果你是罰款PowerShell然後你可以使用下面的一個簡單的PowerShell命令來完成。它將替換20142015該文件夾/目錄內的所有文件。

cdcd D:\Testing

Dir | Rename-Item -NewName { $_.name -replace "2014","2015" } 

不完全是由默認值,但可以做一些接近

與下面的代碼片段創建一個文件並將其保存爲test.ps1 [任何命名該事項的具體目錄]

param (
[Parameter(Mandatory=$true)] 
[string] $path = $null 
) 

cd $path; 

Dir | Rename-Item -NewName { $_.name -replace "2014","2015" }; 

它現在是一個PowerShell腳本,可以從PowerShell命令運行pr OMPT了下方D:\Testing無非是命令行參數(被傳遞給腳本強制參數否則腳本將失敗)現在

.\test.ps1 D:\Testing 

,您可以輕鬆地設置這個腳本在Windows任務計劃程序,並運行它在特定的時間根據您的需要。

+0

基本上我寧願使用批處理文件,所以我不必每次都使用powershell我想重命名文件 – Sindar 2014-11-06 08:44:25

+0

出於任何目的,如果您可以使用批處理腳本,那麼您還可以使用PowerShell腳本。無論如何,這是你的選擇。 – Rahul 2014-11-06 08:45:38

+0

無論如何,默認情況下在腳本所在的文件夾中執行此命令? – Sindar 2014-11-06 08:49:38

-1

希望這可以幫助你。

for f in * ;do mv $f ${f/%2014/2015} ; done 

${f/%2014/2015}意味着更換爲f

+0

我已經創建了一個批處理文件,其中包含for; *; mv $ f $ {f /%2014/2015};完成它,但它不工作。 – Sindar 2014-11-06 08:43:54

+0

這個答案適用於bash,而不是批處理。他們是完全不同的語言,這不會幫助你。 – SomethingDark 2014-11-06 08:46:10

+0

對不起。這是我的錯誤。 – 2014-11-06 08:51:47

0

純一批後綴(假設你有或者你能得到的文件名):

@echo off 

set "the_file=ID32432 - Name of the file - 31.01.2014.ext" 

setlocal enableDelayedExpansion 
for /f "tokens=1,2,* delims=." %%A in ("%the_file%") do (
    set year_part=%%C 
    set year_=!year_part:~0,4! 
    set rest_=!year_part:~4! 
    set /a year_inc_=year_+1 
    set new_name=%%A%%B!year_inc_!!rest_! 

) 
endlocal &&(
    set new_name=%new_name% 
) 

echo %new_name% 
相關問題