ฉันต้องการพิมพ์รายการหมายเลขของชื่อไฟล์ในไดเรกทอรี
ฉันเหนื่อย
dir /w > test.txt
คำสั่งในการทำสิ่งนี้คืออะไร?
ฉันต้องการพิมพ์รายการหมายเลขของชื่อไฟล์ในไดเรกทอรี
ฉันเหนื่อย
dir /w > test.txt
คำสั่งในการทำสิ่งนี้คืออะไร?
คำตอบ:
@echo off
setlocal enabledelayedexpansion
set num=0
FOR %%F IN (*) DO (
set /a num += 1
echo !num! %%~fF
)
echo %num% files
endlocal
"%% ~ fF" พิมพ์เส้นทางแบบเต็ม หากต้องการพิมพ์ชื่อไฟล์แบบสั้นให้ใช้ "%% F" ดู for /?
ใกล้ถึงจุดสิ้นสุดสำหรับการขยายที่เป็นไปได้ทั้งหมด
แก้ไข : เพื่อผ่านในไดเรกทอรีให้เปลี่ยนเป็น
FOR %%F IN (%**) DO (
และเรียกชื่อไดเรกทอรีด้วยเครื่องหมายทับ ("C: \ Windows \" ต่อไปนี้ไม่ใช่ "C: \ Windows") หรือไม่มีชื่อไดเรกทอรี
คุณสามารถเปลี่ยนเป็นไดเรกทอรีด้วย pushd %*
ก่อนหน้า for for loop และหลังจากนั้น popd
เมื่อใดก็ตามหลังจาก for for loop สิ่งนี้จะมีประโยชน์หากคุณต้องการทำมากกว่าระบุไฟล์ แต่คุณต้องการกลับไปยังไดเรกทอรีการทำงานดั้งเดิม
แก้ไข : นี่คือรุ่นที่มีคำอธิบายประกอบที่สมบูรณ์มากขึ้น นอกจากนี้ยังแสดงรายการไดเรกทอรี - ฉันพลาดไป for
ไม่ทำตามค่าเริ่มต้น:
@echo off
setlocal enabledelayedexpansion
:: change to a dir
pushd %*
:: file counter
set num=0
:: dirs only
FOR /D %%D IN (*) DO (
set /a num += 1
echo !num! %%D
)
:: files only
FOR %%F IN (*) DO (
set /a num += 1
echo !num! %%F
)
:: final tally
echo.
echo %num% files
:: return to original directory
popd
endlocal
เพียงบันทึกเป็นไฟล์ที่มีนามสกุล .cmd
และวางไว้ที่ใดที่หนึ่งในเส้นทางของคุณ (เช่น C: \ Windows) และสิ่งนี้ควรใช้กับระบบปฏิบัติการ Windows ล่าสุด (ทดสอบกับ XP)
คุณสามารถส่งออกรายชื่อไฟล์โดยใช้ ส่งออกชื่อไฟล์ วางหมายเลขจัดรูปแบบรายการในแบบที่คุณต้องการและพิมพ์ออกมา
หากใช้ Windows กับ NTFS ฉันคิดว่านี่สามารถทำได้ด้วย ทุกอย่าง เครื่องมือค้นหา. มันสามารถค้นหาประเภทไฟล์ที่มีองค์ประกอบเฉพาะในชื่อไฟล์รองรับการแสดงออกปกติและสามารถส่งออกไปยัง