2015-08-19 70 views
1

你好我的編碼朋友的文件夾。將文件移動到基​​於文件名的第一個X字符(VBS)

不好意思問這個,但我認爲它可能是更快地問,如果有人有這樣躺在身邊的腳本。

我有2000+的登錄網上電臺我在音頻mp3文件的文件,我想根據自己的記錄日誌的日期將它們放在文件夾。 (是的,我現在固定記錄從現在開始正確地做到這一點,但這是指涉什麼,我一直在做它:https://stephenmonro.wordpress.com/2015/05/22/setting-up-an-audio-logger/

我的文件是這樣的:(YYYYMMDD_HH00

logs\20150424_0300.mp3 
logs\20150424_0400.mp3 
logs\20150424_0500.mp3 
etc. 

我想什麼是這樣的:

\logs\8 digit date\filename with the same 8 digit date.mp3 

實際

\logs\20150424\20150424_0300.mp3 
\logs\20150424\20150424_0400.mp3 
\logs\20150424\20150424_0500.mp3 
etc. 

這是我編寫的僞代碼,但由於時間有點緊張,沒有幾個小時來猜測,我只是想知道是否有人知道如何快速做到這一點。

.vbs文件是我喜歡的語言。

Do 
    Read a filenames first 8 characters {left(8, filename)} (the date) 
    If not exist, create a folder called that first 8 characters 
    Move that file into the folder name 
Loop (until all files are moved to the right locations) 
+0

一種能解決你的問題後,你可以嘗試,如果你喜歡這個腳本:如何在Windows中播放所有歌曲球員在vbscript? 這裏有兩個版本,一個在後臺,另一個與wmpalyer.exe最小化播放播放列表! http://stackoverflow.com/questions/29327153/how-to-play-all-songs-in-windows-player-in-vbscript?answertab=active#tab-top – Hackoo

+0

嗨@Hackoo,而文件是mp3,我只是需要他們組織。不管怎麼說,還是要謝謝你。 –

回答

2

您的僞代碼對我來說很重要。假設在你的logs文件夾中的所有文件被統一進行命名,這裏是它如何使用FileSystemObject庫來完成:

Const LOGS_FOLDER = "c:\logs" 

Dim objFSO, objFile, strDate, strSub 
Set objFSO = CreateObject("Scripting.FileSystemObject") 

For Each objFile In objFSO.GetFolder(LOGS_FOLDER).Files 

    strDate = Left(objFile.Name, 8) 
    strSub = objFSO.BuildPath(LOGS_FOLDER, strDate) 

    ' Create the folder if it doesn't already exist... 
    If Not objFSO.FolderExists(strSub) Then objFSO.CreateFolder strSub 

    ' Move the file into its proper folder. Use "\" to indicate dest is folder... 
    objFile.Move strSub & "\" 

Next 
+0

天才。這不是每天都有007幫助我。感謝隊友,奇妙地工作。 :) –

相關問題