2013-12-09 26 views
-1

我是新來的腳本,可一些請幫助我,批處理作業自動創建文件夾具有隨機名稱

我想創建一個批處理文件,

1-着眼於前8個字符文件名稱,創建並將這些文件移動到具有前8個字符作爲文件夾名稱的新文件夾。

2-然後查看步驟1中爲下一個四個字符系列(9,10,11,12)創建的文件夾,並創建並移動到另一個子文件夾,並將下一個4個字符作爲文件夾名稱。

3-然後查看在步驟2中創建的文件夾,以便擴展每個文件並創建並移動到擴展名爲文件夾名稱的新文件夾。

例如,我有這個樣子

ABCEFGHI0703xyz.pdf文件

STUVWXYZ0805xyz.pptx

移至文件夾

ABCEFGHI \ 0703 \ PDF

STUVWXYZ \ 0805 \ PPTX

保持考慮到前8個字符是隨機的,接下來的4個字符是年份和月份,以及9種類型的擴展名。

任何幫助,非常感謝。

阿卜杜勒

回答

0
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=c:\sourcedir" 
SET "destdir=c:\destdir" 
FOR /f "delims=" %%a IN (
    'dir /b /a-d "%sourcedir%\*" ' 
) DO (
SET name=%%~na 
SET ext=%%~xa 
SET name=!name:~0,8!\!name:~8,4!\!ext:~1! 
ECHO MD "%destdir%\!name!" 
ECHO MOVE "%sourcedir%\%%a" "%destdir%\!name!\" 
) 
GOTO :EOF 

修改MDMOVE命令,以滿足所需的目標目錄。

+0

沒有。 Magoo腳本沒有工作..它沒有創建文件夾。 – user3081177

+0

Ite將簡單地'ECHO'指定要創建的目錄的名稱以及要執行的'MOVE'命令。在測試和驗證之後,移除「MD」和「MOVE」行上的'ECHO'關鍵字以激活。設置源目錄和目標目錄也是必需的。由於'MD'命令將會重新創建現有的目錄,因此在'MD'行添加'2> nul'來抑制(無害)錯誤報告。同樣,MOVE會報告一個文件被移動。要抑制該消息,請將'> nul'附加到'MOVE'行。 – Magoo

+0

感謝Magoo工作 – user3081177

1

測試此文件的文件夾:

@echo off 
setlocal enabledelayedexpansion 
for %%a in (*.*) do (
    set "filespec=%%a" 
    set "ext=%%~xa" 
    md "!filespec:~0,8!\!filespec:~8,4!\!ext:~1!" 2>nul 
    move "%%a" "!filespec:~0,8!\!filespec:~8,4!\!ext:~1!" >nul 
) 
+0

擴展名不一定是3個字符... – Magoo

+0

謝謝 這是如何在特定文件夾中運行腳本而不是將腳本複製到每個文件夾的。 Regards, Abdul – user3081177

+0

此腳本的另一個問題是擴展名不總是3個字符。 – user3081177

0

有創建隨機文件夾的方法:

寫入新的批處理文件:

:start 
md c:\Users\...\%random% 
goto start 

這將啓動創建隨機文件夾,您可以創建多達36833個文件夾。

+3

注意!這是一個無限循環。 –

相關問題