Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 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 ==========================================================================

Путь к целевому каталогу задаётся параметром пакетного файла (также можно просто перетянуть целевую папку на пакетный файл в Проводнике).
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:11, 05-01-2020 | #5