2014-10-08 2 views
0

배치 스크립트를 사용하여 지정된 위치 또는 현재 위치에있는 모든 폴더의 크기를 계산하고 .csv 파일에 쓰는 프로그램을 만들려고합니다.디렉토리 이름이 일괄 처리에서 너무 길다

I에 유래

How to list all folder with size via batch file

이 질문을 따라 내가 코드를 실행하면 내 코드, 아이오와

`@echo off 
setlocal disabledelayedexpansion 
set "folder=%~1" 
Set "Value=0" 
if not defined folder set "folder=%cd%" 
    (for /d %%a in ("%folder%\*") do (
    set "size=0" 
    for /f "tokens=3,5" %%b in ('dir /-c /a /w /s /x "%%~fa\*" ^| findstr /b /c:" "')do if "%%~c"=="" set "size=%%~b" 
    setlocal enabledelayedexpansion 
    echo(%%~nxa , !size! 
    endlocal 
))>>foldersize.csv 
endlocal 
exit /b` 

입니다 m 오류

디렉토리 이름 "만약 DIR_Name"를 받고 난 이미 윈도우 경로 이름의 최대 길이는 260 자이며, 그이 오류의 원인이 될 수 있음을 알고

너무 깁니다.

이 문제를 해결할 수있는 방법이 있습니까?

모든 응답에 대해 미리 감사드립니다.

+0

이 폴더의 경로 길이는 얼마나됩니까? – foxidrive

+0

하나 이상의 폴더에 대해이 오류가 발생하며 폴더 경로 길이가 모두 260 이상입니다. – ajith

+0

'pushd '를 사용할 수는 있지만 문제를 재현 할 수있는 세부 정보를 모르고 테스트 할 수는 없습니다. 주위를 둘러 보자. 마찬가지로 파일 목록을 가져 오는 목적으로 경로를 단축 할 수도 있습니다. 자세한 내용은 말하기 어렵습니다. – foxidrive

답변

0

정보를 보유하고있는 물리적 서버가 동일한 폴더에 액세스하는 데 문제가 없다고 가정 할 때 유일한 방법은 디렉터리 탐색 프로세스가 시작되는 폴더에 드라이브 문자를 매핑하는 것입니다. 경로 길이에서 컴퓨터 주소 및 공유 이름을 제거합니다.

관련 문제