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


0

ฉันต้องการย้ายไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งโดยไม่มีพา ธ คงที่ในคำสั่งคัดลอก / วาง นั่นหมายความว่าฉันไม่น่าจะมีคำสั่งคัดลอก / วางหนึ่งซับ:

โครงสร้างโฟลเดอร์มีดังนี้:

  • Mainfolder
    • Files.dir
    • log.dir
    • executable.bat

นี่คือรหัสของฉัน:

cd log
if exist flist.log del flist.log
cd ..
cd Files
dir /b /a-d>flist.log
copy flist.log
cd ..
cd log
paste flist.log

หรือถ้าเป็นไปได้มีดังนี้:

cd log
if exist flist.log del flist.log
cd ..
cd Files
dir /b /a-d>flist.log (save in Files.dir without a fixed path)

ฉันไม่สามารถใช้พา ธ คงที่ได้เนื่องจากโฟลเดอร์นี้ถูกเรียกใช้งานจึงจำเป็นต้องย้าย

ขอบคุณ :)


Files.dir? คุณกำลังพยายามเขียนสคริปต์ชุดเดียวสำหรับ Windows, Unix และ OpenVMS หรือไม่
grawity

คำตอบ:


0

คุณทำไม่ได้ โดยทั่วไปการคัดลอก / วางไฟล์ไม่มีอยู่ในเชลล์คำสั่ง

แต่คุณบอกได้โดยตรงว่าจะย้ายไฟล์ไปที่ใด:

if exist log\flist.log del log\flist.log

cd Files
dir /b /a-d > flist.log

move flist.log ..\log\

หรือในความเป็นจริงบอกมันโดยตรงที่จะเขียนไฟล์ในสถานที่แรก:

cd Files
dir /b /a-d > ..\log\flist.log

ไม่มีข้อกำหนดพื้นฐานสำหรับ "ไม่มีผู้บุกรุก" ของคุณ อย่างที่คุณเห็นไม่มีตัวอย่างข้างต้นใดใช้เส้นทางคงที่ คำสั่งทั้งหมดยอมรับเส้นทางสัมพัทธ์ (มี..หรือไม่มี) แบบเดียวกับที่cdทำ


สิ่งนี้ได้ผลขอบคุณ! ฉันค้นหาคำตอบสำหรับสิ่งนี้ แต่ฉันพบวิธีใช้ xcopy และสิ่งต่าง ๆ เช่นนั้นเท่านั้น ผู้รุกรานส่วนใหญ่ที่มีเส้นทางที่แน่นอน ดูเหมือนจะเป็นเรื่องง่าย ๆ ที่จะแก้ปัญหา แต่มันก็ไม่ใช่เรื่องง่ายที่จะหาคำตอบเช่นคุณ :)
Tom Tom

0

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

เส้นทางสัมพัทธ์ทำงานไม่จำเป็นต้องไปcdทุกที่

dir /b /a-d files >log\flist.log

มันเป็นความตั้งใจที่คุณจะลงเอยด้วยรายชื่อสองฉบับซึ่งอาจเป็นกรณีในตัวอย่างแรกของคุณจากนั้นติดตามด้วย

copy /y log\flist.log files\flist.log

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