Bat文件,用于创建目录名称,该目录名称来自.txt文件

时间:2018-10-05 12:14:48

标签: batch-file

我必须制作一个BAT文件,该文件使用从.txt文件中提取的名称来创建目录,而且该名称必须只是令牌中的前两个字符。为了澄清,以下是for命令必须采用的.txt内容:

Jose;Leon;70234567
Ana;Sierra;20001110

而且我必须创建具有如下名称的目录:

JoLeo67
AnSie10 

(第一个令牌的前两个字符,第二个令牌的前三个字符和第三个令牌的前两个数字)

到目前为止,我已将此命令用于此操作:

for /f "TOKENS=1,2,3 DELIMS=;" %i in (C:\Users\usuario\MisDOC\fichero.txt) do 
( SET nom=%i && SET ape=%j && SET dni=%k  ) && 
(md C:\Users\usuario\%nom:~,2%%ape:~,3%%dni:~,2%)

问题在于它使用相同的名称创建两个目录。这是cmd输出:

CMD Output

为了方便起见,用echo而不是md测试了我理解,BATCH文件内部的变量必须用两个%%命名

在此屏幕快照中包含批处理文件中的实际内容: BATCH file

任何人都可以帮忙吗?抱歉,如果不够清楚,英语不是我的母语。预先感谢

为了方便起见,使用echo而不是md进行了测试

(为了方便起见,使用echo而不是md进行了测试)

1 个答案:

答案 0 :(得分:0)

您应该使用DelayedExpansion。只需创建一个蝙蝠文件:

@echo off
setlocal enabledelayedexpansion
for /f "TOKENS=1,2,3 DELIMS=;" %%i in (C:\Users\usuario\MisDOC\fichero.txt) do ( SET nom=%%i && SET ape=%%j && SET dni=%%k ) && (md C:\Users\usuario\!nom:~,2!!ape:~,3!!dni:~-3!)