我需要知道是否可以创建一个批处理代码,读取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(知道要在哪里删除(。
有可能吗?请帮帮我
谢谢。
您将在,
delimeter上运行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"