Batch file 删除另一个文件中具有名称和路径的文件。bat

Batch file 删除另一个文件中具有名称和路径的文件。bat,batch-file,batch-processing,Batch File,Batch Processing,我需要知道是否有可能创建一个批处理代码,读取一个file.txt文件,并根据那里的信息,访问文件夹路径和删除文件。 在my file.txt中,是sql查询的结果 my_file.txt file_name, file_path abcd, D:/user/desktop/teste123 efgh, D:/user/desktop/folder789 批处理需要读取“文件名”(知道要删除的文件)和文件路径(知道要删除的位置) 可能吗?请帮帮我 谢谢。您可以在,delimeter上运行for循

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

my_file.txt

file_name, file_path
abcd, D:/user/desktop/teste123
efgh, D:/user/desktop/folder789
批处理需要读取“文件名”(知道要删除的文件)和文件路径(知道要删除的位置)

可能吗?请帮帮我


谢谢。

您可以在
delimeter上运行for循环和split,并将其用作变量

因此,作为一个未经测试的示例,这里我将拆分文件条目并分配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"
您只需删除回显即可执行实际删除

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

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"

这是可能的,是的:您阅读该文件的内容,将其解析为目录名和文件名,并对其进行处理。您好@Dominique,谢谢您的回复,您能帮我做些什么吗?Thanks@Dominique否决我的答案并不能解决你在上一个问题中发布错误的事实,我建议你多了解一下这个网站。无知不会给你带来任何结果。嗨@gerhard,我会努力做到这一点,我会回来告诉你结果。非常感谢。让我知道逗号后的尾随空格,以便我可以在需要时进行更改。您可以使用另一个
for/f“tokens=*”%%x in(“%%j”)do…
@LotPings去掉前导空格。是的,谢谢。不过,我怀疑它是否包含一个基于我从DB导出的大量csv文件的空间:),但无论如何都可以将其作为故障保护来构建。@GerhardBarnard工作得非常好:D非常感谢。还有一个问题,我能跳过第一行吗?我尝试在相同的FOR/f“skip=1”中插入“%%I in(my_file.txt)do del”%%j\%%I”,但不起作用,可能是错误的。我需要为创建一个新的来跳过第一行?我可以忽略我的_file.txt中的文本(受影响的xx行)?我对所有的问题感到抱歉,我是新来的。谢谢你的帮助。