CMD.EXE
(ターゲットシステム:MS Windows 2k3)のバッチスクリプトを記述して、次のことを実行できるかどうか疑問に思っています。
rootfolder
たくさんのファイルやディレクトリを含むフォルダを作りましょう。一部のサブディレクトリ(さまざまなレベル)は、と呼ばれる場合がありますdirname
。rootfolder2
のディレクトリツリー構造をコピーしてフォルダを作成したいのですが、その内容rootfolder
を含むフォルダのみが含まれています。dirname
同じフォルダをコピーしてから削除したいのですがrootfolder2
例:
rootfolder
`- dir1
`- dir2
`- filew
`- dirname
`- filey
`- dirname
`- file1
`- dirx
`- file2
`- filez
そして、私が探している出力は次のようになります。
rootfolder
`- dir1
`- dir2
`- filew
`- filez
rootfolder2
`- dir2
`- dirname
`- filey
`- dirname
`- file1
`- dirx
`- file2
C / C ++ / Java / etcでコンソールアプリケーションを作成せずにこれを行うことはできますか?
よろしくお願いします、ジョー
単純なxcopyとバッチスクリプトを使用した私の質問に対する答えは次のとおりです。
@echo off
setlocal ENABLEDELAYEDEXPANSION
set StartDir=Folder1
set BackupDir=Folder1 BK
mkdir "%BackupDir%"
call :ProcessDir "%StartDir%"
exit /b 0
:ProcessDir
echo Processing directory "%~1"
for /f "delims=" %%d in ('dir /ad /b "%~1"2^>nul') do (
if "%%d"=="foldername" (
xcopy /s /e /i "%~1\%%d" "%BackupDir%\%~1\%%d"
rmdir /S /Q "%~1\%%d"
) else (
call :ProcessDir "%~1\%%~d"
)
)
exit /b 0
クレジットは次の場所に移動します:ファイル名の再帰的な名前変更+バッチファイルを使用したフォルダー名