Batch file 批处理脚本-创建文件夹问题
我正在尝试创建一个批处理脚本,该脚本根据文本文件中的行创建文件夹。我希望能够自动执行“D”功能,这样就不需要输入 @回音 set/p D=“输入名称,例如ABCD:” 对于/F“delims=”%(list.txt)中的%%a,请执行以下操作( 对于%%x英寸( “C:\test\%D%\%a” “C:\test\%D%\%a\Folder1” “C:\test\%D%\%a\Folder2” )做( MD“%%~x” ) ) 我的列表文件如下所示 杰克-12345 约翰12345 我想阅读每行的前4个字符,并在已经存在的相关文件夹中创建目录 因此,JACK-12345将在C:\test\JACK\JACK-12345中创建一个文件夹,JOHN将创建一个文件夹C:\test\JOHN\JOHN-12345 任何帮助都将不胜感激Batch file 批处理脚本-创建文件夹问题,batch-file,directory,Batch File,Directory,我正在尝试创建一个批处理脚本,该脚本根据文本文件中的行创建文件夹。我希望能够自动执行“D”功能,这样就不需要输入 @回音 set/p D=“输入名称,例如ABCD:” 对于/F“delims=”%(list.txt)中的%%a,请执行以下操作( 对于%%x英寸( “C:\test\%D%\%a” “C:\test\%D%\%a\Folder1” “C:\test\%D%\%a\Folder2” )做( MD“%%~x” ) ) 我的列表文件如下所示 杰克-12345 约翰12345 我想阅读每行
@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“targetdir=U:\destdir”
对于/F“delims=”%(q35285628.txt)中的%%a,请执行以下操作(
设置“ch4=%%a”
设置“ch4=!ch4:~0,4!”
对于%%x英寸(
%targetdir%\!ch4!\%%a
%targetdir%\!ch4!\%%a\Folder1
%targetdir%\!ch4!\%%a\Folder2
)做(
回波(MD“%%~x”
)
)
后藤:EOF
您需要更改targetdir
的设置以适应您的环境
我使用了一个名为q35285628.txt
的文件,其中包含用于测试的数据
所需的MD命令仅用于测试目的。ECHO
ed。验证命令正确后,将ECHO(MD
更改为MD
以实际创建目录。追加2>nul
以抑制错误消息(例如,当目录已存在时)
调用delayedexpansion
以允许元变量%%a的子字符串将整个字符串视为读取到ch4
,然后选择前4个字符
块中需要!var!
,才能在运行时访问变量的变化值
对于扩展问题(未指定:“数学”等在树中的位置-附加、替换,无论什么
使用常规的“肉”:
SET "ch4=%%a"
SET "ch4=!ch4:~0,4!"
SET "folder1=Folder1"
if /i "!ch4:~0,1!"=="m" SET "folder1=Maths"
if /i "!ch4:~0,1!"=="s" SET "folder1=Science"
FOR %%x IN (
"%targetdir%\!ch4!\%%a"
"%targetdir%\!ch4!\%%a\!folder1!"
"%targetdir%\!ch4!\%%a\Folder2"
) DO (
ECHO(MD "%%~x"
)
)
如果从文件中读取的行的第一个字符是“m”(在任何一种情况下),则将原始方案中的“folder1”替换为“math”,如果是“s”,则替换为“Science”,否则替换为“folder1”。@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
设置“targetdir=U:\destdir”
对于/F“delims=”%(q35285628.txt)中的%%a,请执行以下操作(
设置“ch4=%%a”
设置“ch4=!ch4:~0,4!”
对于%%x英寸(
%targetdir%\!ch4!\%%a
%targetdir%\!ch4!\%%a\Folder1
%targetdir%\!ch4!\%%a\Folder2
)做(
回波(MD“%%~x”
)
)
后藤:EOF
您需要更改targetdir
的设置以适应您的环境
我使用了一个名为q35285628.txt
的文件,其中包含用于测试的数据
所需的MD命令仅用于测试目的。ECHO
ed。验证命令正确后,将ECHO(MD
更改为MD
以实际创建目录。追加2>nul
以抑制错误消息(例如,当目录已存在时)
调用delayedexpansion
以允许元变量%%a的子字符串将整个字符串视为读取到ch4
,然后选择前4个字符
块中需要!var!
,才能在运行时访问变量的变化值
对于扩展问题(未指定:“数学”等在树中的位置-附加、替换,无论什么
使用常规的“肉”:
SET "ch4=%%a"
SET "ch4=!ch4:~0,4!"
SET "folder1=Folder1"
if /i "!ch4:~0,1!"=="m" SET "folder1=Maths"
if /i "!ch4:~0,1!"=="s" SET "folder1=Science"
FOR %%x IN (
"%targetdir%\!ch4!\%%a"
"%targetdir%\!ch4!\%%a\!folder1!"
"%targetdir%\!ch4!\%%a\Folder2"
) DO (
ECHO(MD "%%~x"
)
)
如果从文件中读取的行的第一个字符是“m”(在任何一种情况下),则将原始方案中的“folder1”替换为“math”,如果是“s”,则替换为“Science”,否则替换为“folder1”。您是在寻找“前4个字符”还是在寻找“直到破折号的零件”?从您的大量示例中,两者都是相同的。仅前4个字符,我正在使用的所有文件夹将只有4个字符(示例中使用的名称可能不是最好的方式,因为名称可能会更长)。您是在寻找“前4个字符”还是在寻找“最前面的部分”?这两个示例都相同。仅前4个字符,我使用的所有文件夹将仅为4个字符(示例中使用的名称可能不是最好的表达方式,因为名称可能更长)工作非常好!谢谢Magoo非常好的工作非常感谢如果我有一个类似于C:\test\math和C:\test\Science的路径,有没有办法通过阅读第一个字符使它进入“math”或“Science”文件夹?例如,如果txt中的第一个字符是S,它将进入Science,如果是M,它将进入mathematics?“%targetdir%\!ch4!\%%a”“%targetdir%\!ch4!\%%a\Folder1”“%targetdir%\!ch4!\%%a\Folder2”效果非常好!感谢Magoo非常好的工作非常感谢如果我有一个类似于C:\test\mathematics和C:\test\Science的路径,有没有办法通过阅读它知道的第一个字符进入“mathematics”或“Science”来实现它“文件夹?例如,如果文本中的第一个字符是S,它将进入科学,如果是M,它将进入数学?”%targetdir%\!ch4!\%%a”“%targetdir%\!ch4!\%%a\Folder1”“%targetdir%\!ch4!\%%a\Folder2”