
このスクリプトを持っています
for /f "skip=1 delims=" %%x in ('wmic logicaldisk get caption') do (
copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause
特定のコンピューター上の利用可能なすべてのディスクから SPT 拡張子を持つファイル (当社独自の会社ファイル) を USB ドライブにコピーする必要があります。
なぜ動作しないのか誰か分かりますか? 出力は次のようになります:
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 . . .
どうもありがとうございます。
編集:出力を修正しました
答え1
PowerShell を使用しますか? 次のスクリプトを試してください。
$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\
スクリプトの最後を USB に変更し、PowerShell として実行してください。
答え2
次のコードは動作するはずです:
for /f "skip=1" %%x in ('wmic logicaldisk get caption') do (
copy "%%x\*.spt" "%drive%\mydiagtools"
)
pause
私にとっては価値がないにもかかわらず%drive%
、問題は に関連しているようでしたdelims=
。 がなければ、ドライブの内容を正常に一覧表示してコピーできましたが、 はdelims=
望ましくない副作用を引き起こし、ファイルが表示またはコピーされませんでした。
(Windows 10 Enterprise x64 バージョン 1803 ビルド 10.0 でテスト済み)17134.376)