การย้ายไฟล์ / โฟลเดอร์ที่ซ่อนอยู่ด้วยบรรทัดคำสั่งหรือแบทช์ไฟล์


15

คำถาม

ไม่มีใครรู้วิธีย้ายไฟล์และโฟลเดอร์ที่มีคุณลักษณะระบบหรือการอ่านอย่างเดียวที่ซ่อนอยู่จากบรรทัดคำสั่งหรือไฟล์แบตช์? (ไม่การดึงคุณสมบัติก่อนไม่ใช่ตัวเลือกเนื่องจากไม่มีวิธีปฏิบัติที่จะรู้ได้ว่าคุณลักษณะใดที่ตั้งค่าไว้เพื่อตั้งค่าใหม่หลังจากการย้าย)


(ล้มเหลว) ความพยายาม

  1. การใช้moveคำสั่งพื้นฐานไม่ทำงานกับรายการที่มีชุดคุณลักษณะที่ซ่อนอยู่หรือระบบและด้วยเหตุผลบางอย่างก็ไม่มีสวิตช์เพื่อระบุคุณลักษณะเช่นdirและdelคำสั่งคำสั่งที่ทำ

  2. ฉันลองใช้ยูทิลิตี้ที่ฉันเขียนซึ่งใช้ฟังก์ชั่นการทำงานของไฟล์ของเชลล์ แต่จำเป็นต้องใช้ start /wเพื่อป้องกันไฟล์แบตช์ไม่ให้ทำงานต่อไปและบ่นเกี่ยวกับการสนับสนุนชื่อไฟล์แบบยาวด้วยเหตุผลบางประการ

  3. ฉันลองใช้robocopyแต่ก่อนอื่นก็อปปี้ไฟล์แล้วจึงลบต้นฉบับแทนที่จะย้ายต้นฉบับ (ซึ่งส่งผลให้เกิดความล่าช้าที่น่าผิดหวังแม้จะมีการเปลี่ยนเส้นทางมากเกินไปไปที่nul )

(น่าแปลกที่ดูเหมือนว่ามีคนไม่กี่คนที่ต้องการย้ายไฟล์ที่ซ่อนอยู่จากบรรทัดคำสั่งทั้งหมดที่ฉันพบคือคนคนนี้ที่ละทิ้งความพยายาม)


4
หากคุณกำลังสร้าง\tempไดเรกทอรีทำไมไม่เปลี่ยนชื่อ / ย้าย%1ไดเรกทอรีเป็น\temp? หรือว่าเป็นเพียงกรณีที่ง่ายขึ้น?
เคน

นั่นเป็นกรณีที่ง่ายกว่า เพียงแค่เปลี่ยนชื่อจะไม่ทำงาน
Synetech

ทำไมการลอกแอททริบิวไม่ใช่ตัวเลือก? นั่นจะเป็นวิธีที่เหมาะสม (และตั้งใจ) ในการทำเช่นนั้น
โกง

> ทำไมการลอกคุณสมบัติไม่ได้เป็นตัวเลือก? @Idigas คุณจะทราบได้อย่างไรว่ามีคุณลักษณะใดบ้างที่ถูกตั้งค่าไว้ในแต่ละรายการเพื่อให้สามารถตั้งค่าได้อย่างถูกต้องอีกครั้ง > นั่นจะเป็นวิธีที่เหมาะสม (และตั้งใจ) ในการทำสิ่งนั้นฟังดูไม่ถูกต้องเลย
Synetech

ยกโทษให้ความเขลาของฉัน แต่จะมีบางอย่างเช่นjamesewelch.com/2008/05/01/…ใช้ได้ไหม
ดรคิตตี้

คำตอบ:


6

ฉันสามารถย้ายไฟล์ที่ซ่อนอยู่แบบอ่านอย่างเดียวโดยใช้ MV.EXE จากยูทิลิตี้ GNU สำหรับ Win32 ได้สำเร็จ ไฟล์เป้าหมายยังคงคุณลักษณะแบบอ่านอย่างเดียวและซ่อนอยู่

คุณจะต้องดาวน์โหลดแพ็คเกจทั้งหมด:

http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php


1
ไม่เลว. ว่างานที่น่าเสียดายที่มันตายเมื่อจัดการกับไฟล์ที่เริ่มต้นด้วย--; มันคิดว่ามันเป็นข้อโต้แย้งแทนชื่อไฟล์
Synetech

2
ไม่เลว? แค่นั้นแหละ? มันแก้คำขอของคุณ ฉันไม่เห็นอะไรเลยเกี่ยวกับข้อกำหนด '- ชื่อไฟล์' หรือฉันจะทดสอบมัน ขออภัย แต่ความต้องการที่ซ่อนอยู่เป็นกีฬาที่น่าสงสาร
RobW

ใช่ไม่เลว มันไม่เพียง แต่การดำเนินการพื้นฐานผมถามเกี่ยวกับ หากไม่สามารถจัดการชื่อไฟล์ Windows ที่ถูกต้องได้แสดงว่าไม่มีประโยชน์มากในตอนนี้ การจัดการชื่อไฟล์อย่างถูกต้องไม่ใช่ข้อกำหนด "ซ่อน"
Synetech

3
@Synetech คุณเพียงแค่จะต้องมีคุณสมบัติชื่อไฟล์:mv .\--1.txt newdirectory
dangph

4
ยูทิลิตี Unix ในการใช้งานทั่วไป--fooเพื่อแสดงถึงอาร์กิวเมนต์บรรทัดคำสั่ง เพื่อสนับสนุนชื่อไฟล์ที่เริ่มต้นด้วย--ส่วนใหญ่ยอมรับอาร์กิวเมนต์พิเศษ--เพื่อแสดงจุดสิ้นสุดของอาร์กิวเมนต์บรรทัดคำสั่งและจุดเริ่มต้นของชื่อไฟล์ ฉันไม่แน่ใจว่าmvเป็นหนึ่งในคำสั่งเหล่านี้ แต่ถ้าเป็นเช่นนั้นคุณควรจะสามารถ:mv -- --weirdFileName.gotcha betterFileName.txt
Ben

5

ฉันเพิ่งใช้มันสำเร็จ:

xcopy /H hidden_file destination_file
del /AH hidden_file

1
คำถามถามว่าจะย้ายไฟล์อย่างไร OP รู้วิธีคัดลอกและลบและไม่ต้องการทำเช่นนั้น นอกจากนี้เขาบอกว่าเขารู้วิธีลบไฟล์ที่ซ่อนอยู่แล้ว
สกอตต์

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

ยุติธรรมเพียงพอมันไม่ใช่การเคลื่อนไหวที่แท้จริง และสำหรับการเคลื่อนไหวครั้งใหญ่มันสามารถให้ค่าใช้จ่ายมากมาย แต่ OP ไม่เคยพูดว่าการคัดลอก + ลบนั้นเป็นสิ่งที่ไม่ดีและไม่ว่าจะเป็นไฟล์ใดไฟล์หนึ่งที่ได้รับความนิยมสูงสุดในการค้นหาวิธีย้ายไฟล์ที่ซ่อนอยู่จากบรรทัดคำสั่งและทำงานได้ดีกับสิ่งที่ฉันต้องทำ . ฉันคิดว่าคนที่กำลังมองหาวิธีย้ายไฟล์ที่ซ่อนอยู่ไม่กี่อาจใช้มันเช่นกันแทนที่จะติดตั้งเครื่องมือ GNU หรือ PowerShell น่ารำคาญมากที่คำสั่ง "ย้าย" ไม่สามารถทำได้
Ben

1
จากคำถามที่ว่า“ (ไม่) พยายาม ... 3. ฉันพยายามใช้robocopyแต่มันเป็นครั้งแรกสำเนาไฟล์แล้วลบต้นฉบับแทนที่จะย้ายแหล่งที่มา (ซึ่งส่งผลให้เกิดความล่าช้าในการทำลาย ... ).”
สกอตต์

ยุติธรรมพอ ... ฉันเดาว่าฉันอ่านว่า "ฉันไม่ต้องการใช้ robocopy" แทนที่จะเป็น "ฉันไม่ต้องการให้มีการคัดลอก + ลบ" แต่ฉันเห็นจุดของคุณ
Ben

3

Powershell v2:

move-item -force   '--1.txt' newdirectory

ยังย้ายไฟล์ที่ซ่อนอยู่พร้อมชุดคุณลักษณะที่ซ่อนอยู่และระบบ จะทำงานกับไฟล์ที่ขึ้นต้นด้วย '-'


1
ฉันแน่ใจว่าจะใช้งานได้ แต่ PowerShell ช้ามากเมื่อเทียบกับพรอมต์คำสั่งปกติ และไม่ใช่นั่นไม่ใช่ข้อกำหนด "ซ่อนเร้น" ฉันระบุอย่างชัดเจนว่าไม่ชอบ Robocopy ในคำถาม (โปรดอย่าบอกฉันว่ามันทำงานได้อย่างรวดเร็วในระบบของคุณเพราะนั่นไม่ได้ช่วยผมในทางใดทางหนึ่ง. ในระบบของฉันก็จะใช้เวลาหลายวินาทีเพียงเพื่อโหลดและแม้เพียงแค่กดปุ่มTabเพื่อให้ชื่อไฟล์ต้องใช้> 1 วินาทีซึ่งเป็นคำสั่ง ของขนาดช้ากว่าcmdมาดังนั้นถ้าคุณไม่เต็มใจที่จะซื้อระบบใหม่ฉันจะไม่ช่วย PS)
Synetech

โซลูชัน PowerShell ที่ง่ายยิ่งขึ้น:mv .oldfile .newfile
Jay Sullivan

0

แล้วเรื่องนี้ล่ะ

C:\Temp>attrib hidden.txt
A   H        C:\temp\hidden.txt

C:\Temp>mklink /H renamed.txt hidden.txt
Hardlink created for renamed.txt <<===>> hidden.txt

C:\Temp>del /AH hidden.txt

C:\Temp>attrib renamed.txt
A   H        C:\temp\renamed.txt

เห็นได้ชัดว่าใช้งานได้เฉพาะภายในข้อ จำกัด ของการอนุญาตให้ใช้ลิงก์ ฉันคิดว่านี่หมายถึงปลายทางของไฟล์จะต้องอยู่ในพาร์ติชันเดียวกันของฟิสิคัลดิสก์เดียวกัน แต่ถ้าข้อ จำกัด นี้ไม่เป็นจริงฉันค่อนข้างมั่นใจว่าจะต้องมีการคัดลอก + ลบภายใต้ประทุน
Ben

ความคิดที่น่าสนใจ แน่นอนเกินไป ตัวอย่างเช่นหากคุณตั้งค่าแอตทริบิวต์อ่านอย่างเดียวจะไม่ให้คุณลบไฟล์“ ใหม่” ในครั้งแรกที่คุณพยายามลบ แต่จะลบคุณลักษณะออก ಠ_ఠและแน่นอนว่ามันใช้ไม่ได้กับโฟลเดอร์
Synetech

0

เรามี PowerShell และmvคำสั่งแล้ว เพื่อความสมบูรณ์ดังนั้นนี่คือวิธีทำกับTCC / LE ของ JP Softwareซึ่งทั้งคู่moveและrenคำสั่งมี/a:ตัวเลือกว่าเป็นเรื่องธรรมดาที่หลายคำสั่งที่ไดเรกทอรีสแกนไฟล์ที่จะดำเนินการเมื่อ

[C: \ Users \ JdeBP] สัมผัส / c - สลับ -
11/03/2014 20: 29: 18.868 C: \ Users \ JdeBP \ - wibble--

[C: \ Users \ JdeBP] attrib + h + s. \ - wibble--
___A___________ -> _HSA___________ C: \ Users \ JdeBP \ - wibble--

[C: \ Users \ JdeBP] ย้าย / a: hs - wibble-- - wobble--
C: \ Users \ JdeBP \ - wibble-- -> C: \ Users \ JdeBP \ - โยกเยก -
     ย้ายแล้ว 1 ไฟล์

[C: \ Users \ JdeBP] ren / a: hs - wobble-- --wurble--
C: \ Users \ JdeBP \ - โยกเยก - -> C: \ Users \ JdeBP \ - โยกเยก -
     1 ไฟล์ถูกเปลี่ยนชื่อ

C: \ Users \ JdeBP] dir / a: hs / t / m / k --wurble--
11/03/2014 20:29 0 _HSA___________ - เดินเล่น -

[C: \ Users \ JdeBP]

อ่านเพิ่มเติม

  • ซอฟต์แวร์ JP ย้ายแล้ว รับความช่วยเหลือจาก Command / TCC
  • ซอฟต์แวร์ JP REN รับความช่วยเหลือจาก Command / TCC

ฉันไม่ได้ซื้อซอฟต์แวร์เชิงพาณิชย์เพื่อทำสิ่งที่ฉันควรจะทำได้ด้วยโปรแกรมฟรีขนาดเล็ก (และฉันอาจต้องเขียนด้วยตนเองตามปกติ) ไม่ว่าคุณจะเขียนโค้ดแอตทริบิวต์ที่ไม่ดีเพราะคุณไม่สามารถคาดเดาคุณลักษณะที่โฟลเดอร์อาจมี นอกจากนี้เมื่อสัมผัสแล้วคุณจะสูญเสียการประทับเวลาดั้งเดิม
Synetech
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.