我必须制作一个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输出:
为了方便起见,用echo而不是md测试了我理解,BATCH文件内部的变量必须用两个%%命名
任何人都可以帮忙吗?抱歉,如果不够清楚,英语不是我的母语。预先感谢
为了方便起见,使用echo而不是md进行了测试
(为了方便起见,使用echo而不是md进行了测试)
答案 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!)