次の構造のフォルダー (およびサブフォルダー) がたくさんあります...
Test/Student001/ABC,
Test/Student001/DEF,
Test/Student002/ABC,
Test/Student002/DEF, etc...
次に、それらのフォルダー (およびそのサブフォルダーとその中のファイル) を別の場所に再配置して、次のようにする必要があります...
Test/Class01/ArronAmos(Student001)/ABC
Test/Class01/ArronAmos(Student001)/DEF
Test/Class02/BrettBesty(Student002)/ABC
Test/Class02/BrettBesty(Student002)/DEF
すべてのフォルダー (およびサブフォルダー) の元の名前と新しい名前 (そのように保存された) を含むテキスト ファイルがあります。
studentdata.txt
A (studentcode), B (studentnewname), C (Class)
Student001, ArronAmos (Student001), Class01
Student002, BrettBesty (Student002), Class02
基本的にこのようにバッチを取得する方法はありますか(上記のテキストファイルからA、B、Cを使用 - 可能であれば1つのtxtファイルを使用することをお勧めします)...
md 'C' ::which will skip past if folder exists
rename folder 'A' to 'B' ::only rename of root folder and leave subfolders intact
move folder 'B' to 'C' ::move new named folder (B) and all subfolders and contents to new root folder (C)
新しいディレクトリとサブフォルダーの作成 (新規および将来の学生向け) は次のようになり、うまく機能します (ただし、サブフォルダー作成用に 2 番目のテキスト ファイルをコード化するのではなく呼び出す方法があった場合を除きます)。私は推測する)...
作成バッチ
cd /d %~dp0 pause
FOR /F "delims=~" %%f in (dirlist.txt) DO md "%%f"
:: This code creates directories referenced from a .txt file: - :: FOR /F "delims=~" %%f in (dirlist.txt) DO MD "%%f"
pause
FOR /D %%x in (*) do mkdir "%%x\Individual Behaviour Plans" "%%x\Individual Learning Plans" "%%x\Student Reports" "%%x\Student Support Group Meetings"
:: This code creates a new dir within every folder in batch location: - :: FOR /D %%x in (*) do mkdir "%%x\value"
pause
これは、私が他の技術者から受け取った Rename Batch で、よく理解していないか、機能させるために変更する方法を知りません..
*rename_users.bat** :: Script to Rename folders - prefixing from a text file
setlocal ENABLEDELAYEDEXPANSION
Set Rootfolder=Test Set Names=names.txt
:: Goto Root Folder cd /d %~dp0
:: Start Line Counter Set LineCount=0
:: For Every folder in the directory
For /d /r %%g in (*) DO (
:: Increment the line counter by 1 (see the use of "!" >instead of "%" due to delayed expansion)
Set /a LineCount=!Linecount!+1
:: Call the Rename Folder sub - passing through the >variables of folder name and line counter
Call:RenameFolder %%g !LineCount!)
:RenameFolder :: For all of the tokens in the findstr on the names file for /f "Tokens=1* delims=:" %%a in ('findstr /n "^" "%Names%"') DO ( :: If the line counter matches the line number If %%a==%~2 ( :: Rename the Folder Move "%~1" "%~1 %%b") ) ::Return to the Primary
Goto:EOF
Set Rootfolder= Set Names= Set linecount= Set Drive=
Endlocal
トリックは、作成ディレクトリ (およびサブディレクトリ) バッチ ファイルを使用することはできないということです。新しい構造のサブフォルダーに配置する必要があるデータを含む元の形式のフォルダーがいくつか存在するためです...そしてそれらを手動で移動しますオプションになります...これを行う900以上の学生フォルダーがなければ...
何らかの意味があることを願っています...みんなありがとう!