จะเพิ่มคำนำหน้าให้กับโฟลเดอร์และโฟลเดอร์ย่อยทั้งหมดได้อย่างไร (Windows)


1

Re: จะเพิ่มคำนำหน้าให้กับไฟล์และโฟลเดอร์ทั้งหมดในโฟลเดอร์ได้อย่างไร? (Windows)

ฉันกำลังพยายามสร้างไฟล์. bat ซึ่งจะเปลี่ยนชื่อโครงสร้างโฟลเดอร์ที่กำหนดไว้ล่วงหน้าด้วยคำนำหน้าหมายเลขโครงการเช่น ชื่อโครงการ / ผู้ดูแลระบบ - กลายเป็น - 7000-01 ชื่อโครงการ / ผู้ดูแลระบบ 7000-01 นี่คือสิ่งที่ฉันมี:

@Echo off
pushd
for /d %%g in (*) do ren "%%g" "7000-01 %%g"

ซึ่งใช้งานได้เฉพาะในระดับสูงสุด แต่ฉันต้องการให้เปลี่ยนชื่อโฟลเดอร์ย่อยทั้งหมด (รวมถึงที่อยู่ต่ำกว่าระดับ 'ผู้ดูแลระบบ' ในเช่นด้านบน)

ฉันอ่านที่นี่ - https://ss64.com/nt/for_d.html การใช้for /d /rควรทำงานเพื่อเปลี่ยนชื่อโฟลเดอร์ย่อยทั้งหมดซ้ำ แต่ฉันไม่สามารถใช้งานได้

FYI pushdจะถูกใช้เพื่อให้ชื่อ. bat ยังคงเหมือนเดิม

คำตอบ:


0

คุณสนิทกันมาก! คำสั่งที่ถูกต้องคือ:

for /r /d %%g in (*) do ren "%%g" "7000-01 %%~ng"

คำอธิบายแบบเต็ม:

ดังที่คุณกล่าวถึงคุณต้องใช้for /d /rเพื่อทำงานซ้ำ ๆ ( https://ss64.com/nt/for_d.html )

การตรวจสอบไวยากรณ์ของคำสั่งrenor renameแสดงให้เห็นว่าจำเป็นต้องใช้ไวยากรณ์ที่เฉพาะเจาะจงมาก:

>ren /?
Renames a file or files.

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

Note that you cannot specify a new drive or path for your destination file.

คำสั่งดั้งเดิมของคุณที่อยู่ในลูป for for กำลังถูกประเมินค่าren "FULL_PATH" "FULL_PATH"และควรเป็นจริงren "FULL_PATH" "SIMPLE_FILE_NAME"

ในการรับชื่อไฟล์โดยไม่มีนามสกุลหรือพา ธ ให้ใช้~nกับตัวแปร ( https://ss64.com/nt/syntax-args.html )


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