จะเปลี่ยนขนาดสูงสุดของอักขระชื่อไฟล์ใน windows เพื่อรันคำสั่งแบตช์ไฟล์ได้อย่างไร

ฉันมีไฟล์ประมาณ 700 ไฟล์ที่ไฟล์แบตช์บางไฟล์ใช้ หลังจากแต่ละกระบวนการ ชื่อไฟล์ที่สร้างขึ้นใหม่จะมีชื่อเดียวกันกับคำนำหน้า หลังจากรันหลายไฟล์ชื่อไฟล์จะมีความยาวประมาณ 50 ตัวอักษร ในสถานการณ์นี้ไฟล์แบตช์อื่นๆ ไม่สามารถใช้ไฟล์ที่สร้างขึ้นได้ และเกิดข้อผิดพลาดที่แจ้งว่า "ระบบไม่พบไฟล์ที่ระบุ" แต่หลังจากลดชื่อไฟล์ ไฟล์แบตช์จะทำงานอย่างถูกต้องและไม่มีข้อผิดพลาดใดๆ แม้ว่าปัญหานี้จะมีอยู่ในคอมพิวเตอร์ของฉันในคอมพิวเตอร์เพื่อนของฉัน ไฟล์แบตช์ทั้งหมดทำงานอย่างถูกต้องบนไฟล์ที่มีชื่ออักขระมากกว่า 60 ตัว
ฉันไม่รู้วิธีแก้ไขปัญหานี้ มีการกำหนดค่าหรือวิธีแก้ปัญหาสำหรับการเปลี่ยนอักขระชื่อไฟล์สูงสุดใน windows หรือไม่?
ฉันควรจะพูดถึงว่า windows ให้ฉันมีไฟล์ที่มีอักขระมากกว่า 50 ตัว แต่ไฟล์แบตช์ทำงานไม่ถูกต้องและฉันไม่สามารถเปลี่ยนชื่อไฟล์และกระชับไฟล์ได้ด้วยเหตุผลบางประการ!

ของฉัน ระบบคอมพิวเตอร์: win ultimate 7
คอมพิวเตอร์เพื่อนของฉัน: win server (ฉันได้ลองบน win server อื่นแล้ว แต่ทำงานไม่ถูกต้อง และฉันสับสน!)

ส่วนหนึ่งของไฟล์แบตช์ที่ทำให้เกิดข้อผิดพลาด (และยังมีคำสั่งมากมายเช่นนี้):
forfiles /p . /m .%%~ni. /c "cmd /c move @FILE .\%%~ni\@FILE"

เนื้อหาข้อผิดพลาด:
The system cannot find the file specified.


person ghedas    schedule 01.06.2013    source แหล่งที่มา


คำตอบ (1)


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

ตรวจสอบบทความนี้ สำหรับข้อมูลเพิ่มเติม

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

วิธีแก้ไข (นี่เป็นวิธีแก้ปัญหามากกว่า) คือการวางไฟล์ของคุณไว้ในโฟลเดอร์ที่ใกล้กับรูทของดิสก์มากที่สุด

เควิน

person Kevin MOLCARD    schedule 01.06.2013
comment
ฉันคิดว่าสิ่งนี้ไม่เกี่ยวข้องกับ path ของไฟล์ เพราะในทั้งสองสถานการณ์ (คอมพิวเตอร์) %%~ni และ @file มีค่าเท่ากัน ดังนั้นจากบทความที่คุณแนะนำ จึงไม่มีความแตกต่างกัน! - person ghedas; 01.06.2013
comment
ขอโทษด้วยกับเรื่องนั้น. ระบบไฟล์เป็นทั้ง NTFS หรือไม่ - person Kevin MOLCARD; 01.06.2013
comment
ใช่ทั้งสองระบบไฟล์เป็น NTFS Tanx ล่วงหน้า - person ghedas; 02.06.2013