ฉันกำลังสร้างแบตช์ไฟล์เพื่อลบไฟล์และโฟลเดอร์ทั้งหมด ยกเว้นโฟลเดอร์ TEMP
ฉันสังเกตเห็นตัวอักษร D ของตัวเลือก /D
หายไปในเอาต์พุต ดูเหมือนว่าสคริปต์จะทำงานได้ดี แต่ฉันสงสัยว่าทำไมมันถึงหายไป
@echo on
@Y:
REM Following dangerous command commented out for safety - magoo
REM for %%f in (*) do del "%%f"
for /D %%d in (*) do (
if /I not "%%d" == "TEMP" echo "%%d"
)
pause
เอาท์พุท:
Y:\>for %f in (*) do del "%f"
Y:\>for / %d in (*) do (if /I not "%d" == "TEMP" echo "%d" )
Y:\>(if /I not "TEMP" == "TEMP" echo "TEMP" )
Y:\>(if /I not "test" == "TEMP" echo "test" )
"test"
Y:\>(if /I not "test 2" == "TEMP" echo "test 2" )
"test 2"
Y:\>pause
ฉันกำลังสะท้อนเพียงเพื่อการทดสอบ ในที่สุดฉันจะแทนที่มันด้วย rd /S /Q
echo
ตรวจสอบว่าไดรฟ์ปัจจุบันเป็น Y จริง ๆ: - person Magoo   schedule 17.08.2019Y:
ไม่ได้หมายถึงการเปลี่ยนไปยังไดเร็กทอรีราก แต่จริงๆ แล้วจะมีไดเร็กทอรีปัจจุบันสำหรับทุกไดรฟ์ คุณสามารถทำcd
/D "Y:\" || exit /B 1
เพื่อเปลี่ยนเป็นรูทของY:
อย่างแน่นอน และยังปิดในกรณีของ ข้อผิดพลาด (เช่น เมื่อไม่มีY:
) หรือใช้pushd
/popd
... - person aschipfl   schedule 17.08.2019Y:
ด้วยcd/D "Y:\" || exit /B
และเพิ่มการตรวจสอบว่ามีโฟลเดอร์ TEMP อยู่หรือไม่ - person user3315073   schedule 17.08.2019@echo OFF
... - person JosefZ   schedule 17.08.2019/D
กับ/R
ระบบจะแสดงเครื่องหมายทับเพียงอันเดียวโดยไม่มีตัวอักษร ทุกรูปแบบที่ไม่มี/D
echo อย่างถูกต้อง @JosefZ - ข้อผิดพลาดที่รู้จัก? - คุณมีข้อมูลอ้างอิงหรือไม่? ฉันอยากรู้ว่ามันพูดว่าอะไร - person dbenham   schedule 18.08.2019FOR /D
ใน.bat
/.cmd
เนื่องจาก... - person JosefZ   schedule 18.08.2019