在Windows 7中,我有一个文件夹,其中包含以下文件:
a.txt
b.txt
c.txt
还有另一个文件夹包含以下文件:
b.txt
c.txt
d.txt
我想使用命令行从folder2中删除文件 b.txt
和 c.txt
,这些文件显示在两个列表中。我了解如何使用for /f
生成文件列表。我不知道如何在for /f
中进行另一个循环,以便我可以删除文件。
我不确定您是说是否要文件b.txt和c.txt从两个文件夹中删除,还是一个。以下批处理文件将从文件夹中删除它们。
@echo off
setlocal
set folder1=name_of_your_first_folder
set folder2=name_of_your_second_folder
for %%f in (%folder1%*) do (
if exist %folder2%%%~nxf echo del %folder2%%%~nxf
)
rem remove echo from above once satisfied it will do the right thing
取决于您的外壳和操作系统。如果您正在使用bash,那么我会认为这样的事情:
#!/bin/bash
folder1=a
folder2=b
for f in $folder1/*.txt; do
g=`basename $f`
if [ -f $folder2/$g ]; then
echo "remove $folder2/$g"
else
echo "not in $folder2 $g"
fi
done