1

所以...是的,我是个新手。仍然试图解释得尽可能好。但是需要帮助,例如从 C: 驱动器(带有批处理)中找到确切的文件,然后重命名它。还想知道如何从 C: 中查找文件并将其删除。(1个线程中有2个问题......)

问题1. 示例:我想批量从C:盘中查找名为“text1.txt”的文件,如果成功找到,将其重命名为“text2.txt”。

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

或者如何用批处理来完成?del image1 只检查它已经存在的同一个文件夹,与重命名相同。如何从整个 C: 磁盘批量查找这些文件?只是例子。通过批量搜索精确文件来解决、重命名和删除 2 件小事。如何使用批处理从子文件夹中删除文件?但对不起,我的低知识,必须从某个地方开始这些事情。

4

2 回答 2

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" 
于 2013-03-28T18:43:02.070 回答
1

哦,有一些可爱的程序员真是太好了!我认识的大多数程序员都很丑

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扫描来工作,包括忽略名为“text.txt”的文件的匹配目录名的子目录- 并且完整的文件名分配给. 该子句确保任何空格都不会被解释为分隔符。/b/s/a-d%%idelims

`FOR ?` 

从文档提示中。

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

第二个命令非常简单

del /s "image1.jpg"

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

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

于 2013-03-28T18:50:52.823 回答