このバッチ ファイルを使用してファイルを検索および移動しようとしていますが、隠しファイルでは機能しません。何が足りないのでしょうか?
@echo off
setlocal
set root=E:\backup
set dest=E:\Tmp
for /f "delims=" %%f in ('dir /ad /b /s %root%') do @move "%%f\~$*.SLD*" %dest%
endlocal
答え1
いずれにせよ、ファイルを非表示解除する必要があります。動く見つからないファイルには動作しません(完全なファイル名を指定しても)。動く隠し属性のタグが付けられたファイルを検索するようにします。
ファイルを非表示解除するには属性 -h. 次のfor
行を次のセットに置き換えます:
for /f "delims=" %%f in ('dir /ad /b /s %root%') do (
@attrib -h "%%f\~$*.SLD*"
@move "%%f\~$*.SLD*" %dest%
)
もっと洗練されたツールを使うこともできます。xコピーまたはロボコピー、隠しファイルを操作できるツールです。もちろん、これらはコピー ツールなので、コピーが完了したら元のファイルを再表示して削除する必要があります。