จะสร้างไฟล์แบตช์เพื่อค้นหาไดรฟ์ทั้งหมดได้อย่างไร


1

ฉันจะรับไฟล์แบตช์นี้เพื่ออ่านไดรฟ์ทางกายภาพและแมปทั้งหมดได้อย่างไร ทำงานได้ดีกับ C: แต่จะไม่อ่านไดรฟ์อื่น

@echo off
set filePath=
for /R c:\ /d %%a in (*) do if exist "%%a\FileName" set filePath=%%a& goto continue
:continue
if defined filePath echo %COMPUTERNAME% %username% yes >> \\server\%computername%.txt

ต้องเป็น.batไฟล์แบตช์หรือเป็น.psไฟล์ PowerShell หรือไม่ (คุณระบุว่า Windows 7 เป็นระบบปฏิบัติการและ Powershell ได้มาตรฐานใน Windows 7 มันเหมือนกับcmd.exeเตียรอยด์)
Darth Android

'Xcept มันถูกกฎหมาย!
RookieTEC9

คำตอบ:


2

ไม่มีตัวแปรใดที่ใช้ตัวอักษรที่แม็พทั้งหมด

หากคุณกำลังทำงานเป็นผู้ดูแลระบบ

fsutil fsinfo ไดรฟ์

ส่งคืนไดรฟ์ดังกล่าวทั้งหมด - ตัวอย่างของรหัส:

FOR /F "usebackq tokens=1" %%a IN (`MOUNTVOL ^| FIND ":\"`) DO (FOR /F "usebackq tokens=3" %%b IN (`FSUTIL FSINFO DRIVETYPE %%a`) DO (IF /I "%%b" EQU "Removable" ECHO %%a ))

(เล่นกับเอาท์พุท)

... หากไม่สามารถใช้งานได้คุณจะต้องระเบิดให้หมดเช่น:

สำหรับ %% i ใน (CDEFGHIJKLMNOPQRSTUVW XYZ) DO @ ถ้ามีอยู่ %% i: @echo %% i:

(อาจควรละเว้นตัวอักษรไดรฟ์ออปติคัล / การ์ดหน่วยความจำการ์ดที่คาดไว้

VBS-scripting หรือ Powershell เหมาะสำหรับสิ่งประเภทนี้


0

if exist %%i: ไม่ได้ผลเสมอไป ดังนั้นคุณสามารถตรวจสอบไดรฟ์ของคุณด้วยวิธีนี้:

(dir %%i:>NUL) && (
  echo Drive [%%i]: exist
) || (
  echo Drive [%%i]: NOT exist
)

หวังว่านี่จะช่วยได้


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