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

delete a files with their name and path in another file .bat

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

my_file.txt

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

Batch 需要读取 "file_name"(知道要删除的文件)和 file_path(知道要删除的位置)。

可能吗?请帮助我

谢谢。

您将 运行 一个 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 并简单地在 more 命令上使用 +1

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