script por lotes para copiar archivos de todas las unidades disponibles a un USB

script por lotes para copiar archivos de todas las unidades disponibles a un USB

tengo este guión

    for /f "skip=1 delims=" %%x in ('wmic logicaldisk get caption') do (
    copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause

y lo necesito para copiar archivos con extensión SPT (archivos patentados de nuestra empresa) a mi unidad USB desde todos los discos disponibles en una computadora específica.

¿Alguien tiene alguna idea de por qué no funciona? Este es el resultado que obtengo:

F:\>for /F "skip=1 delims=" %x in
*.spt" "\mydiagtools" )

\*.spt" "\mydiagtools" )
The device is not ready.

\*.spt" "\mydiagtools" )
\*.spt
The filename, directory name, or v
        0 file(s) copied.

\*.spt" "\mydiagtools" )
The device is not ready.

\*.spt" "\mydiagtools" )
The device is not ready.

\*.spt" "\mydiagtools" )
\*.spt
The filename, directory name, or v
        0 file(s) copied.

\*.spt" "\mydiagtools" )
\*.spt
The system cannot find the path sp
        0 file(s) copied.

\*.spt" "\mydiagtools" )
\*.spt
The filename, directory name, or v
        0 file(s) copied.

F:\>pause
Press any key to continue . . .

Muchas gracias

editar: corrigió la salida

Respuesta1

¿Te gustaría usar powershell? Pruebe el siguiente script.

$copy=Get-PSDrive -PSProvider FileSystem  |  %{ Get-ChildItem $_.Root -Recurse -force  -ErrorAction SilentlyContinue| Where-Object {$_.Extension -eq '.spt'}} Copy-Item -Path $copy.Fullname -Destination  C:\xxxx\

Al final del script, modifíquelo para que sea su USB y luego ejecútelo como PowerShell.

Respuesta2

El siguiente código debería funcionar:

for /f "skip=1" %%x in ('wmic logicaldisk get caption') do (
    copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause

A pesar de %drive%no tener ningún valor para mí, el problema parecía estar relacionado con delims=. Sin él, podía enumerar y copiar con éxito el contenido de una unidad, pero delims=provocaba un efecto secundario no deseado al no mostrar ni copiar ningún archivo.

(probado en Windows 10 Enterprise x64 versión 1803 compilación 10.0.17134.376)

información relacionada