删除名称和路径在另一个文件.bat中的文件

时间:2018-11-09 12:18:38

标签: batch-file batch-processing

我需要知道是否可以创建批处理代码,读取file.txt并根据其中的信息访问文件夹路径并删除文件。 在我的file.txt中,是SQL查询的结果。

my_file.txt

file_name, file_path
abcd, D:/user/desktop/teste123
efgh, D:/user/desktop/folder789

该批次需要读取“ file_name”(知道要删除的文件)和file_path(知道要删除的位置)。

有可能吗?请帮我

谢谢。

1 个答案:

答案 0 :(得分:1)

您将运行for循环并在,分隔符上进行拆分,并将每个变量用作变量。

因此,作为一个未经测试的示例,在这里我将拆分文件条目并分配2个令牌%%i%%j

@echo off
for /f "tokens=1,2 delims=," %%i in (my_file.txt) do echo "%%i" "%%j"

请注意,我在标记上添加了双引号,因为它可能包含空格。

看到您要删除,可能类似于:

@echo off
for /f "tokens=1,2 delims=," %%i in (my_file.txt) do echo del "%%j\%%i"

您将在其中删除回显以执行实际删除的地方。

根据您的评论,要跳过第一行并排除**rows affected行,可以使用:

for /f "tokens=1,2 skip=1 delims=," %i in ('more my_file.txt ^| findstr /VI /C:"rows affected"') do del "%%j\%%i"

或者看到您正在使用更多,可以排除skip=1并在+1命令上使用more

for /f "tokens=1,2 delims=," %i in ('more +1 my_file.txt ^| findstr /VI /C:"rows affected"') do del "%%j\%%i"