วิธีการโอนรายชื่อไฟล์ไปยังผู้ใช้ออฟไลน์ด้วยพื้นฐาน windows xp?


2

ฉันมีไฟล์จำนวนมาก (100s of gb) และฉันต้องการมอบให้กับเพื่อนของฉัน แต่เขาต้องเลือกไฟล์ที่เขาต้องการและฉันไม่สามารถให้ไฟล์ทั้งหมดพร้อมกันได้ (ฉันไม่มีแฟลชยูเอสบีขนาดใหญ่หรือ usb hdd) ฉันสามารถสร้างรายการไฟล์ทั้งหมดและถ่ายโอนไปยัง usb flash ขนาดเล็กให้เขาแล้วเขาสามารถพูดได้ว่าโฟลเดอร์ใดที่เขาต้องการและไม่ต้องการ

ฉันจะสร้างรายการไฟล์ได้อย่างไรซึ่งสามารถดูได้ง่ายในการติดตั้ง windows xp มาตรฐานหรือด้วยโปรแกรมที่คล้ายกับ WindowsExplorer ฉันสามารถทำls -lRรายชื่อที่คล้ายกันและเก็บไว้ใน txt แต่เพื่อนของฉันจะดูรายการนี้ได้ยาก มีdiskdirปลั๊กอินของ Total Commander ซึ่งสามารถเก็บถาวรโฟลเดอร์เป็นไฟล์ข้อความที่มีเพียงชื่อและเส้นทางของไฟล์ที่เก็บไว้ จากนั้นปลั๊กอินนี้จะอนุญาตให้ผู้บังคับการทั้งหมดย้ายเข้าไปในที่เก็บถาวรนี้เช่นภายใน zip หรือ arj แต่ฉันคิดว่าผู้บัญชาการทั้งหมดนั้นยากที่จะใช้กับเพื่อนของฉันดังนั้นฉันจึงถามเกี่ยวกับวิธีแก้ปัญหาคล้ายกับ Windows Explorer (เช่น winzip ช่วยให้ Explorer สามารถย้ายเข้าไปในไฟล์ zip ได้และฉันต้องการบางอย่าง)

ดังนั้น. ฉันสามารถติดตั้งโปรแกรมใด ๆ ได้นอกจากนี้ฉันยังสามารถจัดเก็บโปรแกรมดูด้วยรายการไฟล์บน usb flash


1
ดูเหมือนว่าสิ่งที่คุณต้องการคือโครงสร้างไฟล์ที่ซ้ำกัน แต่แทนที่จะเป็นวันที่จริงในไฟล์เพียงแค่มีชื่อไฟล์เป็นไฟล์จำลองเพื่อให้เพื่อนของคุณสามารถนำทางโครงสร้างเพื่อบอกสิ่งที่เขาต้องการคือ ความเข้าใจที่ถูกต้องของคำขอหรือไม่
เมทริกซ์โมล

ใช่คุณพูดถูกเมทริกซ์
osgx

ถ้าคุณมีการเข้าถึง PowerShell ผมสามารถโยนกันสคริปต์เพื่อทำเพื่อคุณ
เมทริกซ์ตุ่น

ฉันมีสิทธิ์เข้าถึงbash(รุ่น windows) แนวคิดหลักคืออะไร ไม่มี PowerShell ในคอมพิวเตอร์ของเพื่อนฉัน
osgx

1
กำลังพิจารณาสคริปต์ที่สามารถสร้างโครงสร้างไดเรกทอรีเช่นเดียวกับที่คุณถาม PowerShell ไม่จำเป็นต้องอยู่บนพีซีเพื่อนเนื่องจากโครงสร้างไดเรกทอรีจะเป็นเพียงไดเรกทอรีและไฟล์ข้อความเปล่าที่มีชื่อไฟล์
เมทริกซ์โมล

คำตอบ:


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เป็นรูทของเส้นทางที่คุณต้องการให้เพื่อนของคุณรู้ เมื่อสคริปต์นี้ทำงานเสร็จคุณควรมีมิเรอร์ที่แน่นอนของ filestructure (แต่ไม่ใช่ไฟล์จริง) ที่คุณต้องการให้เพื่อนของคุณดูใน C: \ Temp (หรือที่อื่นถ้าคุณเปลี่ยนไดเร็กตอรี่สำหรับ$newdirตัวแปรเช่นกัน Don ไม่มี$newdirตัวแปรอยู่ในไดเรกทอรีของ$dupedirตัวแปรหรือคุณจะได้รับการเรียกซ้ำแบบไม่สิ้นสุดซึ่งอาจใช้พื้นที่ดิสก์ทั้งหมดในที่สุด (แม้ว่า "files" เป็น 0 ไบต์ไฟล์)

สิ่งที่ดีเกี่ยวกับ powershell คือคุณสามารถ "เขียน" สคริปต์ที่ commandline (คล้ายกับทุบตี) คัดลอกรหัสลงในโปรแกรมแก้ไขข้อความทำการเปลี่ยนแปลงเส้นทางจากนั้นคัดลอกและวางสิ่งทั้งหมดลงในหน้าต่าง PowerShell ของคุณและมันจะทำอย่างมหัศจรรย์

ฉันรู้ว่าคุณพูดถึงคุณมีทุบตีและถ้าคุณต้องการสิ่งนี้ในเครื่องยูนิกซ์ / ลินุกซ์ฉันอาจจะสามารถทำได้ในทุบตี น่าเสียดายที่ฉันไม่เคยเก่งเรื่องสคริปต์ bash เมื่อมันต้องใช้ลิงกับระบบไฟล์ windows


ไม่ใช่สำหรับ 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

รายการมีความยาว 4 เมกะไบต์ แต่ไฟล์จะถูกจัดระเบียบในโฟลเดอร์ในหลายชั้น ฉันต้องการแสดงโฟลเดอร์ให้เพื่อนของฉัน แต่เขาสามารถสนใจเนื้อหาบางโฟลเดอร์ (ดูโฟลเดอร์ย่อยโฟลเดอร์ย่อยและชื่อไฟล์ภายในโฟลเดอร์ย่อยบางโฟลเดอร์)
osgx

ฉันรันคำสั่งนั้นจากรากของ C-drive ฉันขอแนะนำให้คุณเรียกใช้จากตำแหน่งที่สงสัยเช่นที่ "เอกสารของฉัน" ตั้งอยู่ หากคุณเพิ่ม / ad ในคำสั่งมันจะให้เฉพาะไดเรกทอรี ไม่มีวิธีง่ายๆในการเลือกเฉพาะไฟล์ที่คุณต้องการปิดไดรฟ์ด้วยคำสั่งเดียว คุณอาจต้องเรียกใช้หลาย ๆ แห่งจากตำแหน่งที่ตั้งที่ต่างกันอาจมีสวิตช์ที่แตกต่างกันขึ้นอยู่กับว่าคุณต้องการ
KCotreau

1
ฉันคิดว่าโครงสร้างไดเรกทอรีของเมทริกซ์จะเป็นเพียงไดเรกทอรีและไฟล์ข้อความเปล่าที่มีชื่อไฟล์ จะดีกว่า
osgx

0

ทำไมไม่ใช้ไฟล์ zip? คุณสามารถดูไฟล์ทั้งหมดในหน้าต่างเดียวโดยแยกไฟล์เหล่านั้นไว้ในโฟลเดอร์อื่น


ฉันไม่สามารถส่งไฟล์ทั้งหมดแม้ในรูปแบบที่มีขนาดใหญ่เกินไป ฉันต้องการเพียงส่งชื่อไฟล์ในลักษณะเหมือนต้นไม้
osgx

ฉันสามารถสร้าง zip ด้วยได
เร็

0

ฉันคิดเกี่ยวกับคำถามนี้ในขณะนี้และฉันเจอโซลูชันที่สอง สิ่งที่ดีที่สุดคือ

ใช้cdcatซึ่งเป็นโปรแกรมที่สามารถทำดัชนีระบบไฟล์ต้นไม้เช่นดีวีดีหรือฮาร์ดไดรฟ์ (โดยไม่ต้องจัดเก็บไฟล์ขนาดใหญ่ไว้ในดัชนี) และเก็บหลายรายการไว้ในแคตตาล็อกเดียว นี่อาจเป็นโปรแกรมตัวเลือกสำหรับงานดังกล่าวเนื่องจากจะมีข้อมูลเมตาของเพลง (แท็ก ID3) และวิดีโอ (ความละเอียดระยะเวลาและอื่น ๆ ) ไปยังแคตตาล็อก คุณสมบัติที่ดีอีกอย่างหนึ่งคือ cdcat สามารถคำนวณว่าไดเรกทอรีที่จัดทำดัชนีหรือไฟล์ (โหนด) ใหญ่แค่ไหน

มันจะบันทึกข้อมูลเมตาทั้งหมด (และไฟล์ขนาดเล็กเช่น nfo หากคุณกำหนดค่าให้ทำเช่นนี้) ในไฟล์ XML ที่ถูกบีบอัด หากต้องการคัดลอกไฟล์จากคุณ (บุคคล A) ไปยังบุคคล (บุคคล B) หลังจากอนุญาตให้เขา (B) เลือกสิ่งที่เขาต้องการจริง ๆ แล้วสามารถทำงานได้ดังนี้:

  1. บุคคล A ทำดัชนีไฟล์ที่น่าสนใจทั้งหมดของคุณ (คุณควรตรวจสอบการตั้งค่าของ cdcat ก่อนที่จะทำเช่นนั้นเพื่อให้แน่ใจว่าสิ่งที่จะรวมอยู่เช่น nfo, แท็ก ID3, ... ) และบันทึกเป็นแคตตาล็อกเดียว
  2. บุคคล A คัดลอกแคตตาล็อกไปยังบุคคล B
  3. ตอนนี้คน B ต้องเลือกไฟล์อย่างใด ฉันมากับแนวคิดของการใช้ฟิลด์หมวดหมู่ซึ่งสามารถเพิ่มในแต่ละโหนด (ไดเรกทอรีหรือไฟล์) สามารถใช้ฟิลด์นี้เป็นลำดับความสำคัญได้ โหนดใด ๆ ที่ไม่มีหมวดหมู่ติดอยู่ซ้ำ ๆ หรือมีหมวดหมู่พิเศษจะไม่ถูกคัดลอกในภายหลัง หมวดหมู่นั้นจะถูกบันทึกลงในไฟล์ XML ด้วยและไม่ยากที่จะเขียนโปรแกรมวิเคราะห์คำเพื่อส่งออกเช่นสคริปต์. bat หรือสคริปต์ Bash เพื่อคัดลอกไฟล์ที่ต้องการทั้งหมด
  4. Person B มอบสคริปต์การคัดลอกเฉพาะ OS ให้กับบุคคล A (หรือบุคคลที่แน่นอน B ให้แคตตาล็อกที่ถูกปรับเปลี่ยนกลับคืนและให้บุคคล A สร้างสคริปต์การคัดลอก)
  5. บุคคล A เรียกใช้งานสคริปต์คัดลอกและมอบข้อมูล B แก่บุคคล B (จะมีความไม่สะดวกเล็ก ๆ น้อย ๆ หนึ่งเนื่องจาก cdcat ไม่ได้บันทึกเส้นทางไปยังจุดเมานท์จากที่ข้อมูลถูกทำดัชนีไปยังแคตตาล็อก)
  6. Person B คัดลอกไฟล์ไปยังที่เก็บข้อมูลของเขาและมอบสื่อข้อมูลให้กับบุคคล A

โซลูชั่นนี้ยังไม่สมบูรณ์แบบ แต่มันดีที่สุดที่ฉันคิดไว้ ฉันยังไม่ได้ใช้สิ่งนี้ แต่ฉันจะทำในอนาคต ในระหว่างนี้ฉันจะต้องเขียนส่วนขยายหรือสคริปต์ที่สร้างสคริปต์การคัดลอกสำหรับ Linux และ Windows แผนของฉันคือการรวมสิ่งนี้เข้ากับโปรแกรม cdcat โดยตรง

วิธีแก้ปัญหาที่สองและซับซ้อนกว่าซึ่งคุ้มค่าการให้คำปรึกษาคือการใช้git-annexซึ่งอาจใช้กับสิ่งนี้ได้ แต่ฉันไม่ได้คิดถึงเรื่องนี้อย่างระมัดระวังเช่นเดียวกับวิธีแก้ปัญหาด้วย cdcat เพราะแนวทางที่สองนี้ต้องการทั้งสองบุคคล (A และ B) มี git-ภาคผนวกและรู้วิธีใช้ ...

ฉันจะทำให้คุณทันสมัย


ตอนนี้ฉันเขียนสคริปต์ parser ใน Python เพื่อสร้างสคริปต์การคัดลอก ฉันยังไม่ได้ทดสอบ แต่สิ่งที่ยากควรได้รับการจัดการและควรใช้ง่าย รูปแบบสคริปต์คัดลอกเท่านั้นที่สามารถสร้างได้ในปัจจุบันนั้นขึ้นอยู่กับ git-annex ฉันวางแผนที่จะใช้ git-annex แม้ว่าบุคคลที่ฉันแลกเปลี่ยนข้อมูลด้วยจะไม่ใช้เพราะฉันรู้แล้วว่าไฟล์ใดที่ฉันให้เขาและไฟล์นับพันที่ฉันจะได้รับจากเขาคืนหากฮาร์ดไดรฟ์ของฉันล้มเหลว สคริปต์ที่ตั้งอยู่บนGitHub
ypid

เริ่มทำงานกับการสนับสนุน robocopy ลิงก์ไปยังสคริปต์มีการเปลี่ยนแปลง: github.com/ypid/scripts/blob/master/cdcat-parser/
......
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.