Может ли кто-нибудь подсказать, почему мой пакетный скрипт помечает успешно обработанные папки как системные, скрытые, неархивированные? Более того, я даже не могу удалить атрибут «скрытый» через проводник (возможно, из-за атрибута systemfolder).
Сценарий предназначен для обработки одной папки (переданной ей в качестве параметра), поиска файлов необработанных фотографий (в моем случае файлы .nef), помеченные только для чтения. Для каждой фотографии, доступной только для чтения, сценарий копирует указанный файл в обработанную папку и переименовывает эту копию в соответствии с именем файла фотографии.
Беспорядок атрибута папки вызван робокопией. (Без этой команды нет проблем.) Но она вообще не должна касаться папки. В эту папку копируется только один файл. Ошибка возникает только в том случае, если хотя бы один файл в папке был помечен только для чтения и получает дополнительный файл.
Я уже пытался переместить сценарий с системного диска на рабочий стол и запустить его оттуда. Это не имело никакого значения.
(Чтобы избежать путаницы: я нахожусь на не-Engli sh Windows 10, поэтому я использовал! Var! Вместо% var%. Черт, это заняло некоторое время, чтобы найти этот трюк ...)
echo off
setlocal ENABLEDELAYEDEXPANSION
chcp 65001
IF "%~1" == "" (
GOTO myWarning
) ELSE (
IF EXIST "%~1" (
GOTO myFuction
) ELSE (
GOTO myWarning
)
)
GOTO myFuction
:myWarning
echo Ordner-Pfad muss angegeben werden!
pause
GOTO:eof
:myFuction
echo Bearbeite %1
cd "%1"
for /r %%f in (*.nef) do (
set fileattr=%%~af
set readonlyattr=!fileattr:~1,1!
:: check if current file is read-only
IF !readonlyattr!==r (
:: create XMP-Sidecar file for read-only photos
echo %%f
robocopy "C:" "%1" "metadata-2stars.xmp"
rename "metadata-2stars.xmp" "%%~nf.xmp"
)
)
GOTO:eof