批处理取文件名(批处理获取文件名称并赋值给变量)
- 作者: 李芸汐
- 来源: 投稿
- 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”的新文件中。
批处理是一种强大的工具,可用于自动执行常见的文件管理任务。通过使用这些提示,您可以提高工作效率并保持文件井井有条。