기본 Windows XP를 사용하여 파일 목록을 오프라인 사용자에게 전송하는 방법은 무엇입니까?


2

나는 많은 파일 (GBs)을 가지고 있으며 그중 일부를 내 친구에게주고 싶다. 그러나 그는 필요한 파일을 선택해야하며 한 번에 모든 파일을 제공 할 수는 없습니다 (큰 USB 플래시 또는 USB HDD는 없습니다). 모든 파일 목록을 만들어 작은 USB 플래시로 전송 한 다음 원하는 폴더와 그렇지 않은 폴더를 말할 수 있습니다.

표준 Windows XP 설치 또는 작은 WindowsExplorer와 같은 프로그램에서 쉽게 볼 수있는 파일 목록을 어떻게 만들어야합니까? 나는 할 수 ls -lR-like 목록 및 TXT에 저장하지만, 내 친구가이 목록을 볼 수에는 힘들 것입니다. diskdirTotal Commander 의 플러그인 이 있으며 , 파일의 이름과 경로 만 저장하여 텍스트 파일로 폴더를 보관할 수 있습니다. 그런 다음이 플러그인을 사용하면 총 사령관이 zip 또는 arj 내부와 같이이 아카이브 내부로 이동할 수 있습니다. 그러나 나는 총 사령관이 내 친구에게 사용하기 어렵다고 생각하므로 Windows 탐색기와 같은 솔루션에 대해 묻고 있습니다 (예 : winzip을 사용하면 탐색기가 zip 아카이브 내부로 이동할 수 있으며 비슷한 것을 원합니다).

그래서. 모든 프로그램을 설치할 수 있으며 USB 플래시에 파일 목록이있는 뷰어 프로그램을 저장할 수 있습니다.


1
원하는 것은 파일 구조의 복제본처럼 들리지만 파일의 실제 날짜 대신 파일 이름을 더미 파일로 지정하면 친구가 구조를 탐색하여 원하는 것을 말할 수 있습니다. 요청에 대한 올바른 이해?
Matrix Mole

네, 맞습니다, Matrix
osgx

powershell에 액세스 할 수있는 경우이를 위해 스크립트를 함께 던질 수 있습니다.
Matrix Mole

bash(Windows 버전)에 액세스 할 수 있습니다 . 주요 아이디어는 무엇입니까? 내 친구의 컴퓨터에는 powershell이 ​​없습니다.
osgx

1
디렉토리 구조는 단순히 디렉토리와 파일 이름이있는 빈 텍스트 파일이기 때문에 powershell은 친구의 PC에있을 필요가 없습니다.
Matrix Mole

답변:


1

로컬 시스템에 powershell v2를 설치했거나 이미 설치 했다고 가정하면 다음 스크립트가 수행 한 작업을 수행 할 수 있습니다 (powershell v1에서는 작동하지 않을 수 있음).

$dupedir = "D:\Backup"
$newdir = "C:\Temp"
$dupelist = Get-ChildItem -Force -Recurse -ErrorAction SilentlyContinue $dupedir

foreach ($item in $dupelist) 
{
    If ($item -is [Io.DirectoryInfo])
    {
        $itemtype = "directory"
    }
    If ($item -is [Io.FileInfo])
    {
        $itemtype = "file"
    }

    New-Item -Force -type $itemtype -Path $item.FullName.Replace("$dupedir","$newdir")
}

$dupedir친구에게 알리려는 경로의 루트로 경로를 변경하십시오 . 이 스크립트가 실행을 마치면 친구가 C : \ Temp (또는 $newdir변수 의 디렉토리를 변경하는 경우 다른 곳)에서 살펴볼 파일 구조 (실제 파일은 아님)의 정확한 미러가 있어야합니다 . $newdir변수가 변수의 디렉토리 안에 있지 않으면 $dupedir무한 재귀가 발생하여 결국 모든 디스크 공간을 소비 할 수 있습니다 ( "파일"이 0 바이트 파일 인 경우에도).

powershell의 좋은 점은 명령 줄에서 스크립트를 "쓰기"할 수 있다는 것입니다 (bash와 유사). 코드를 텍스트 편집기에 복사하고 경로를 변경 한 다음 모든 것을 복사하여 powershell 창에 붙여 넣으면 마술처럼됩니다.

나는 당신이 bash를 언급했다는 것을 알고 있으며 유닉스 / 리눅스 머신에서 이것을 원한다면 bash에서 그것을 할 수 있었을 것이다. 불행히도 Windows 파일 시스템으로 원숭이가 필요할 때 bash 스크립팅에 능숙하지 못했습니다.


powershell은 아니지만 경로와 이름은 같지만 크기는 0 인 모든 파일을 다시 만들려는 생각입니다.
osgx

2

dir /s > C:\temp\filename.txt명령을 사용하십시오 . 그러면 디렉토리 구조가 C : \ temp \ filename.txt 파일로 출력됩니다. 내려 가고 싶은 곳에서 시작하십시오.

그런 다음 TXT 파일을 보내십시오.


1
txt는 탐색하기 어렵습니다.
osgx

어떤 방법으로 탐색하기가 어렵습니까? "dir / s / b> C : \ temp \ filename.txt"를 사용해보십시오. (/ b를 추가하여 대부분의 엑스트라를 제거하십시오.
KCotreau

목록의 길이는 4MB입니다. 그러나 파일은 여러 계층으로 폴더로 구성됩니다. 친구에게 폴더를 보여주고 싶지만 일부 폴더 내용에 관심이있을 수 있습니다 (하위 폴더, 하위 하위 폴더 및 일부 하위 폴더 내의 파일 이름 참조).
osgx

C 드라이브의 루트에서 해당 명령을 실행했습니다. 예를 들어 "내 문서"가있는 위치와 같이 문제가있는 위치에서만 실행하는 것이 좋습니다. / ad를 명령에 추가하면 디렉토리 만 제공됩니다. 하나의 명령으로 드라이브에서 원하는 파일 만 쉽게 선택할 수있는 방법은 없습니다. 원하는 위치에 따라 다른 위치에서 여러 위치를 실행해야 할 수도 있습니다.
KCotreau

1
매트릭스의 "디렉토리 구조는 파일 이름을 가진 디렉토리와 빈 텍스트 파일 일뿐"이라고 생각합니다. 더 나은 것입니다
osgx

0

왜 zip 파일을 사용하지 않습니까? 하나의 창에서 모든 파일을 볼 수 있지만 다른 폴더로 추출 할 수 있습니다.


paked 형식으로 모든 파일을 보낼 수 없습니다. 파일이 너무 큽니다. 트리와 같은 방식으로 파일 이름 만 보내려고합니다.
osgx

모든 디렉토리와 파일을 가지고 있지만 파일 내용이없는 zip을 만들 수 있습니까 (zip의 0 바이트 파일)
osgx

0

나는이 질문에 대해 얼마 전에 생각하고 두 가지 해결책을 발견했습니다. 가장 좋은 것은 다음과 같습니다.

큰 파일을 인덱스에 저장하지 않고 DVD 나 하드 드라이브와 같은 파일 시스템 트리를 인덱싱하고 하나의 카탈로그에 여러 개를 저장할 수있는 프로그램 인 cdcat 을 사용하십시오 . 이것은 아마도 음악에 대한 메타 정보 (ID3 태그)와 비디오 (해상도, 지속 시간 등)를 카탈로그에 포함하기 때문에 그러한 작업을 위해 선택한 프로그램 일 것입니다. 또 다른 좋은 기능은 cdcat이 색인화 된 디렉토리 또는 파일 (노드)의 크기를 계산할 수 있다는 것입니다.

압축 된 XML 파일에 모든 메타 정보와 nfo와 같은 작은 파일을 저장합니다. 자신 (B)이 실제로 원하는 것을 선택하도록 허용 한 후 파일 (사용자 A)을 누군가 (B 사람)에게 파일을 복사하려면 다음과 같이 작동 할 수 있습니다.

  1. Person A는 흥미로운 모든 파일을 색인화하고 (nfo, ID3 태그 등… 포함될 항목을 확인하기 위해 cdcat 설정을 확인해야 함) 하나의 카탈로그로 저장합니다.
  2. 개인 A는 카탈로그를 개인 B로 복사합니다.
  3. 이제 사람 B는 어떻게 든 파일을 선택해야합니다. 각 노드 (디렉토리 또는 파일)에 추가 할 수있는 카테고리 필드를 사용하는 아이디어를 생각해 냈습니다. 이 필드는 예를 들어 우선 순위로 사용될 수 있습니다. 재귀 적으로 연결된 범주가 없거나 특수 범주가있는 노드는 나중에 복사되지 않습니다. 범주는 XML 파일에도 저장되며 원하는 파싱 파일을 모두 복사하기 위해 .bat 스크립트 또는 Bash 스크립트와 같은 내보내기를위한 파서를 작성하는 것은 그리 어렵지 않습니다.
  4. 개인 B는 개인 A에게 OS 특정 사본 스크립트를 제공합니다 (물론 개인 B는 수정 된 카탈로그를 제공하고 개인 A가 사본 스크립트를 생성하도록합니다).
  5. 개인 A는 복사 스크립트를 실행하고 개인 B에게 데이터 매체를 제공합니다. cdcat은 데이터가 카탈로그에 색인화 된 마운트 지점에 대한 경로를 저장하지 않으므로 약간의 불편이 있습니다.
  6. 개인 B는 파일을 저장 영역으로 복사하고 데이터 매체를 개인 A에게 다시 전달합니다.

이 솔루션은 아직 완벽하지는 않지만 내가 찾은 최고입니다. 나는 이것을 아직 사용하지 않았지만 앞으로도 사용할 것입니다. 이 과정에서 Linux 및 Windows 용 복사 스크립트를 생성하는 확장 또는 스크립트를 작성해야합니다. 내 계획은 이것을 cdcat 프로그램에 직접 포함시키는 것입니다.

멘토링 가치가있는 두 번째 더 정교한 솔루션 은 아마도 이것에도 사용될 수있는 git-annex 를 사용하는 것이지만,이 두 번째 접근 방식은 어떻게 든 두 사람이 필요하기 때문에 cdcat을 사용하는 솔루션만큼 신중하게 생각하지 않았습니다. (A와 B)는 git-annex를 가지고 있으며 사용법을 알고있다.

나는 당신을 최신 상태로 유지할 것입니다.


이제 복사 스크립트를 생성하기 위해 Python으로 파서 스크립트를 작성했습니다. 아직 테스트하지는 않았지만 어려운 문제는 이미 처리해야하며 쉽게 소비 할 수 있어야합니다. 현재 생성 할 수있는 유일한 복사 스크립트 형식은 git-annex를 기반으로합니다. 나는 데이터를 교환하는 사람이 그것을 사용하지 않더라도 git-annex를 사용할 계획이다. 왜냐하면 내가 준 파일과 하드 드라이브가 고장 나면 그에게서 얻을 수있는 수천 개의 파일을 정확히 알기 때문입니다. 스크립트는 GitHub있습니다 .
ypid

robocopy 지원 작업을 시작했습니다. 스크립트 링크가 변경되었습니다 : github.com/ypid/scripts/blob/master/cdcat-parser/…
ypid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.