Цитата mariolast:
Похожая задача. Нужно в папке и подпапках позаменять все файлы пустышками с таким же названием, как у оригинала. »
|
Не «похожая». Совсем.
Попробуйте так:
Скрытый текст
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=%~1
call :GetTemporaryName
if defined sSourceFolder (
if exist "%sSourceFolder%\." (
md "%TemporaryName%"
>nul robocopy.exe /create /e /move "%sSourceFolder%" "%TemporaryName%" "*.*"
>nul robocopy.exe /create /e "%TemporaryName%" "%sSourceFolder%" "*.*"
rd /s /q "%TemporaryName%"
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 2
)
) else (
echo Usage: %~nx0 ^<Source folder^>
exit /b 1
)
endlocal
exit /b 0
rem ==========================================================================
rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
setlocal enableextensions enabledelayedexpansion
:NextName
set sTempName=%temp%\temp%random%.tmp
if exist "%sTempName%" goto :NextName
set sProcName=%~0
endlocal & set %sProcName:~4%=%sTempName%
exit /b 0
rem ==========================================================================
Путь к целевому каталогу задаётся параметром пакетного файла (также можно просто перетянуть целевую папку на пакетный файл в Проводнике).