2016-08-10 4 views
0

リスト内のフォルダからすべてのゼロバイトファイルの名前を格納する方法を見つけることができませんでした。バッチスクリプトの移動ファイル0バイト同じ名前

if exist *.xml for %%i in (*.xml) do if %%~zi==0 ECHO "%%i" >> list.txt 

これは動作しますが、次のステップは、list.txtにを読んで、それは別の拡張子を持っている場合でも、同じファイル名を持つすべてのファイルを移動することであろう、また、他のファイルが持っているゼロバイトではありません同じファイル名であるが拡張子は異なる。

12345.html12345.xml - 名前が同じであるため、両方のファイルが移動されるだろう。

何か助けが素晴らしいだろう!

おかげ

答えて

0

for /?に修飾子を見てください。たとえば、%%~nAは拡張子のない名前を付けます。

for /f "delims=" %%A in (list.txt) do (
    echo ---- %%nA ---- files with same basename: 
    dir /b "%%~dpnA.*" 
) 
+0

ありがとうございますが、問題は1つのファイルがゼロバイトで、もう1つはそうではありません...そのため、私はゼロバイト1を探してリストに追加します。私はゼロと同じ名前が別の拡張子の異なるファイルを移動しようとします。 –

+0

私はそれを理解しました。単に 'dir'コマンドを対応する' copy'コマンドで置き換えてください。 – Stephan

+0

私はあなたのスクリプトを2番目の.batとして使用して、自分のスクリプトを正しく実行したとします。私のために働いていないが、私はバッチスクリプトを吸います:) –

関連する問題