2016-06-09 2 views
1

일부 파일을 복사 한 다음 "읽기 전용"속성을 제거하는 배치 파일을 만들려고합니다.배치를 사용하여 읽기 전용을 제거하십시오.

Windows 사용하기 8.1.

@echo off 
set s1=copy successful 
set s2=remove read only successful 
set timer=2 

XCOPY C:\my_dir_1\my_dir_2 C:\my_dir_2 /D /E /C /R /I /K /Y 
echo %s1% 
timeout /T %timer% 
attrib -r C:\my_dir_2 /s /d 
echo %s2% 
timeout /T %timer% 

복사하는 것은 잘 작동하고 내가 이것을 실행할 때 복사되는 동안, 나는 모든 파일에 cmd를 프롬프트가 표시됩니다 :

내 파일은 다음과 같이 보입니다. 타이머도 예상대로 작동하지만 제거 읽기 전용은 아닙니다. 프롬프트가 바로 제 2 타이머 부분으로 간다. 튜토리얼으로서 this 링크를 사용했습니다.

답변

2
attrib -r C:\my_dir_2 /s /d 

은 폴더의 속성을 설정합니다. 파일에 대해 다음과 같이 설정하려고합니다.

attrib -r C:\my_dir_2\* /s /d 
+0

나는 *를 사용하여 약간의 테스트 디렉토리에서 작동하지만 프롬프트에서 실행 줄이 보이지 않습니다. 정상입니까? – CIsForCookies

+1

예, 'attrib'은 매우 비협조적입니다. – Stephan

0

이렇게하려면이 배치 파일을 만들었습니다. 기본적으로이 배치 파일은 해당 디렉토리 또는 그 하위 디렉토리와 하위 디렉토리의 읽기 전용 속성을 지 웁니다. 누군가가 그것을 사용하기를 바랍니다. 내가 배치 파일을 직접 배우기 시작할 때 "불쌍한"것처럼 보일 수있는 코드를 사용하지 마십시오.

@ECHO off 
:begin 
ECHO Would you like to only remove read only attributes 
ECHO from this director or from all the sub directores as 
ECHO well? 
ECHO. 
ECHO [A] This directory only 
ECHO [B] All directories - cascading 
ECHO [C] Cancel 
SET /P actionChoice="Option(A,B,C): " 
ECHO. 
IF "%actionChoice%" == "A" GOTO A 
IF "%actionChoice%" == "B" GOTO B 
IF "%actionChoice%" == "C" GOTO C 
GOTO badChoice 

:A 
CLS 
ECHO Are you sure you want to remove all read-only 
ECHO attributes from this directory only? 
ECHO. 
ECHO Directory: 
ECHO. 
ECHO %CD% 
ECHO. 
SET /P continueChoice="Continue? (Y, N): " 
IF "%continueChoice%" == "N" GOTO abort 
ECHO Removing Read Only Attributes From Local Directory... 
SET currectDirectory=%CD% 
ECHO Current directory is: %currectDirectory% 
FOR %%G IN (%currectDirectory%\*) DO (
ECHO %%G 
ATTRIB -R "%%G" 
) 
GOTO end 

:B 
CLS 
ECHO Are you sure you want to remove all read-only 
ECHO attributes from this directory and all sub-directories? 
ECHO. 
ECHO Directory: 
ECHO. 
ECHO %CD% 
ECHO. 
SET /P continueChoice="Continue? (Y, N): " 
IF "%continueChoice%" == "N" GOTO abort 
ECHO Removing Read Only Attributes Cascading... 
FOR /R %%f IN (*) DO (
ECHO %%f 
ATTRIB -R "%%f" 
) 
GOTO end 

:C 
CLS 
ECHO Cancel: no files have been changed 
GOTO end 

:badChoice 
CLS 
ECHO Unknown Option 
ECHO. 
ECHO. 
ECHO. 
GOTO begin 

:abort 
CLS 
ECHO No files have been changed 
ECHO. 
ECHO. 
ECHO. 
GOTO begin 

:end 
ECHO Read only attributes removed 
PAUSE 
관련 문제