
eu tenho esse roteiro
for /f "skip=1 delims=" %%x in ('wmic logicaldisk get caption') do (
copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause
e preciso copiar arquivos com extensão SPT (arquivos proprietários da empresa) para minha unidade USB de todos os discos disponíveis em um computador específico.
Alguma ideia de por que não está funcionando? Esta é a saída que recebo:
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 . . .
Muito obrigado
editar: corrigiu a saída
Responder1
você gostaria de usar o PowerShell? Por favor, tente o seguinte 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\
No final do script, modifique para ser seu USB e execute como PowerShell.
Responder2
O seguinte código deve funcionar:
for /f "skip=1" %%x in ('wmic logicaldisk get caption') do (
copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause
Apesar de %drive%
não ter nenhum valor para mim, o problema parecia estar relacionado ao delims=
. Sem ele, eu poderia listar e copiar com êxito o conteúdo de uma unidade, delims=
causando um efeito colateral indesejado ao não mostrar ou copiar nenhum arquivo.
(testado no Windows 10 Enterprise x64 versão 1803 build 10.0.17134.376)