批处理:查找文件并重命名/查找文件并将其删除

时间:2013-03-28 18:28:49

标签: file batch-file find rename delete-file

所以......是的,我很新手。仍在努力解释尽可能好。 但需要帮助从找到C:驱动器(批量)的确切文件, 并重命名它。 还想知道如何从C:中找到文件并删除它。 (1个线程中的2个问题......)

问题1.示例:我想从C:驱动器中找到名为“text1.txt”的文件,批处理, 如果成功找到,请将其重命名为“text2.txt”。

问题2.示例:我想从C:驱动器中找到名为“image1.jpg”的文件,批量, 如果成功找到,请将其删除。

或者如何用批处理完成这项工作? del image1仅检查已存在的同一文件夹,与重命名相同。如何从整个C:盘中批量查找这些文件? 举个例子。通过批量搜索确切文件来解决,重命名和删除两件小事。如何用批处理从子文件夹中删除文件? 但对不起,我的低技术诀窍必须从某个地方开始。

2 个答案:

答案 0 :(得分:1)

试试这个。如果输出正常,请从行中删除echo命令。

for /f "delims=" %%i in ('dir /s /b /a-d \file1.txt \image1.jpg') do if "%%~nxi"=="file1.txt" (echo ren "%%~i" "text2.txt") else if "%%~nxi"=="image1.jpg" echo del "%%~i" 

答案 1 :(得分:1)

哦,有一些好的程序员很高兴!我认识的大多数程序员都是 UGLY

for /f "delims=" %%i in ('dir /s /b /a-d "text.txt"') do (ren "%%i" text2.txt)

应该重命名任务。您应该将驱动器和起始目录添加到文件名中,或者它将重命名所有子目录中的所有text.txt文件。因此...dir /s/b "c:\users\kaster\text.txt"...将处理"c:\users\kaster\"以及下面的所有目录,并将名为text.txt的所有文件重命名为新名称。

它的工作原理是在DIR基本模式下执行/b扫描(即仅限文件名)/s,包括子目录/a-d,忽略名为“text.txt”的文件的匹配目录名称“ - 并将完整文件名分配给%%idelims子句确保任何空格都不会被解释为分隔符。

`FOR ?` 

来自文档提示。

如果您直接从提示中执行此操作,请将每个%%更改为%

第二个命令基本上是轻松的

del /s "image1.jpg"

再次,在前面添加起始路径,并且非常,非常小心。这将删除与指定目录中和之下的“image1.jpg”匹配的 ALL 文件名。

在整个过程中,引用文件名可确保正确处理文件或目录名中的spaces