正在加载

批处理取文件名(批处理获取文件名称并赋值给变量)

  • 作者: 李芸汐
  • 来源: 投稿
  • 2024-11-11


1、批处理取文件名

批处理取文件名

在批处理脚本中,经常需要对文件进行操作,而提取文件名的操作是其中一项常见需求。批处理提供了内置命令 FOR 和 SET 来实现这一功能。

使用 FOR 命令

FOR 命令的格式如下:

FOR %%Variable IN (FilePattern) DO Command

其中:

%%Variable:循环变量,用于存储当前匹配的文件名

FilePattern:要匹配的文件模式,支持通配符如 和 ?

Command:要对每个匹配的文件执行的命令

要提取文件名,可以使用如下命令:

```

FOR %%F IN (.txt) DO (

ECHO %%F

```

这将遍历当前目录下所有以 ".txt" 为扩展名的文件,并将其文件名输出到控制台中。

使用 SET 命令

SET 命令的格式如下:

```

SET Variable=Value

```

其中:

Variable:要设置的变量名

Value:要设置的变量值

要提取文件名,可以使用如下命令:

```

SET FileName=%~n1

```

其中:

%~n1:提取文件名的占位符,其中 "1" 表示不包含扩展名的文件名

FileName:要保存文件名的变量

示例

以下批处理脚本演示如何使用 FOR 和 SET 命令提取文件名:

```

@ECHO OFF

FOR %%F IN (F:\.png) DO (

SET FileName=%~n1

ECHO %FileName%

```

该脚本将遍历 F:\ 目录下所有以 ".png" 为扩展名的文件,并将每个文件的名称输出到控制台中。

2、批处理获取文件名称并赋值给变量

批处理获取文件名称并赋值给变量

在批处理脚本中,可以使用以下步骤获取文件名称并将其赋值给变量:

1. 使用 FOR 循环遍历文件:

```

FOR %%F IN (.txt) DO (

```

这将遍历当前目录中所有具有 ".txt" 扩展名的文件。

2. 提取文件名称:

```

SET FILE_NAME=%%~nF

```

这会提取文件名称并将其赋值给变量 `%FILE_NAME%`。`%%~nF` 是批处理中的特殊变量,它包含当前遍历文件的名称(不带路径)。

3. 关闭 FOR 循环:

```

```

以下是一个完整的示例脚本:

```

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

FOR %%F IN (.txt) DO (

SET FILE_NAME=%%~nF

ECHO Found file: !FILE_NAME!

```

在这个脚本中:

`@ECHO OFF` 禁用命令回显。

`SETLOCAL ENABLEDELAYEDEXPANSION` 启用延迟变量展开,以便稍后访问值。

`FOR` 循环遍历具有 ".txt" 扩展名的文件。

`SET FILE_NAME=%%~nF` 将文件名称赋值给变量 `%FILE_NAME%`。

`ECHO Found file: !FILE_NAME!` 输出文件的名称。

运行此脚本将找到当前目录中所有 .txt 文件并打印其名称。

3、批处理选取文件名前3位

批处理选取文件名首三位

在使用批处理命令处理大量文件时,经常需要提取文件名的一部分,如首三位字符。以下批处理代码可实现此功能:

```

@echo off

setlocal enabledelayedexpansion

set "files="

for /f "tokens=" %%a in (files.txt) do (

set "file=%%a"

set "prefix=!file:~0,3!"

echo !prefix!

```

使用方法:

1. 创建一个名为 files.txt 的文本文件,其中列出需要处理的文件名。

2. 复制上述批处理代码到记事本中。

3. 将 files.txt 文件拖放到记事本窗口中,覆盖批处理代码中 files= 后面的部分。

4. 保存批处理文件,如 get_first_three_chars.bat。

5. 运行批处理文件,即可输出指定文件名的首三位字符。

示例:

假设 files.txt 中有以下文件:

file1.txt

file2.txt

file3.txt

运行 get_first_three_chars.bat 后,将输出:

fil

fil

fil

4、批处理文件夹内文件名

批处理文件夹内文件名

在管理大量文件时,批处理文件夹内的文件名可以简化任务并提高效率。以下介绍一些有用的批处理技巧:

重命名多个文件

```

ren .txt .docx

```

此命令将所有以“.txt”结尾的文件名更改为“.docx”。

查找并删除特定文件

```

findstr /s /i "关键词" .txt

del /s /q /f "包含关键词的.txt"

```

这将查找包含“关键词”的所有“.txt”文件并将其删除。

更改文件扩展名

```

for %%f in (.txt) do ren "%%~nf.txt" "%%~nf.docx"

```

此命令将所有“.txt”文件扩展名更改为“.docx”。

排序文件

```

dir /b /od /ad

```

这将按字母顺序或按日期升序排列文件。

创建文件清单

```

dir > file_list.txt

```

此命令将当前目录的文件列表写入“file_list.txt”文件中。

合并多个文件

```

copy /b file1.txt+file2.txt+file3.txt merged_file.txt

```

这将多个文件合并到一个名为“merged_file.txt”的新文件中。

批处理是一种强大的工具,可用于自动执行常见的文件管理任务。通过使用这些提示,您可以提高工作效率并保持文件井井有条。