bat根据txt文件for循环生成文件夹,txt包含特殊符号、
时间: 2023-08-21 17:04:15 浏览: 50
如果你的 txt 文件中包含特殊符号或者空格,可以使用双引号将文件名括起来,以避免出现问题。下面是一个示例代码:
```
@echo off
for /f "usebackq delims=" %%a in ("file names.txt") do (
mkdir "%%a"
)
```
其中,`usebackq` 选项可以让 `for /f` 命令以引号括起来的文件名作为输入,而不是作为普通的字符串。`delims=` 则表示不使用任何分隔符,默认情况下 `for /f` 命令会以空格、制表符和换行符作为分隔符。最后,`%%a` 表示遍历到的当前文件名。在 `mkdir` 命令中,我们将文件名用双引号括起来,以避免特殊符号或空格导致的问题。
相关问题
bat根据txt文件for循环生成文件夹,txt包含特殊符号、指定字符集
可以使用以下bat脚本来实现:
```batch
@echo off
setlocal enabledelayedexpansion
set "filename=file.txt" REM 替换为txt文件的路径
set "encoding=utf-8" REM 替换为txt文件的字符集
for /f "usebackq delims=" %%a in (`type "%filename%" ^| chcp 65001 ^| find /v ""`) do (
REM 处理特殊符号,将%%a中的特殊符号替换为下划线
set "foldername=%%a"
set "foldername=!foldername:~0,128!" REM 截取最大128个字符
set "foldername=!foldername:?=_!"
set "foldername=!foldername:^=^_!"
set "foldername=!foldername:<=_!"
set "foldername=!foldername:>=_!"
set "foldername=!foldername:/=_!"
set "foldername=!foldername:\=_!"
set "foldername=!foldername:|=_!"
set "foldername=!foldername:"=!"
set "foldername=!foldername:*=!"
set "foldername=!foldername:%%=!"
set "foldername=!foldername:?=!"
REM 创建文件夹
md "!foldername!" 2>nul
REM 将文件夹的字符集设置为指定的字符集
chcp 65001>nul
set "foldername=!foldername!"
chcp !encoding!>nul
)
```
在脚本中,我们首先读取了txt文件的内容,然后针对每一行内容进行处理。对于特殊符号,我们使用了一系列替换操作,将特殊符号替换为下划线。然后使用md命令创建文件夹,并使用chcp命令将文件夹的字符集设置为指定的字符集。
bat根据txt文件for循环生成文件夹
可以使用以下的bat代码来实现:
```
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (filelist.txt) do (
set "folderName=%%~na"
mkdir "!folderName!"
)
```
其中,filelist.txt 是包含文件名列表的文本文件,每行一个文件名。上述代码将会根据每个文件名创建一个同名的文件夹。
解释一下代码:
- `@echo off` 表示关闭命令行回显。
- `setlocal enabledelayedexpansion` 表示开启延迟变量扩展,用于在循环中更新变量值。
- `for /f "delims=" %%a in (filelist.txt) do (...)` 表示循环遍历 filelist.txt 中的每一行,并将每行的值赋给变量 %%a。
- `set "folderName=%%~na"` 表示将 %%a 的文件名部分(不包括扩展名)赋给变量 folderName。
- `mkdir "!folderName!"` 表示创建一个同名的文件夹。
注意,上述代码应该保存为 .bat 文件,并放在包含 filelist.txt 的文件夹中执行。
相关推荐
![bat](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)