有没有办法将txt文档的每一行设置为批处理文件中的不同变量?我有一个txt文件,其中包含计算机上的所有驱动器。如果可以的话,如何将每一行(对于每个驱动器)设置为不同的变量?
我有一个文件,它将所有可用的驱动器写入文本文件中。我想读出这个文件,并为每行文本设置一个不同的变量。例如:
DeviceID
C:
D:
E:
现在" DeviceID"将是第一个变量。 " C:" " d:"和" E:"都是个人变量。我希望你明白我的意思。
提前致谢!
好的,所以我试过这个:
@echo off
setlocal enabledelayedexpansion
set i=0
for /f "tokens=2 delims=:=" %%a in ('wmic logicaldisk get name /value ') do (
set /a i+=1
set drive[!i!]=%%a
)
set drive
pause
copy %0 %drive[1]%:\%random%.bat
pause
它运作良好。但我想将当前执行的文件复制到所有找到的驱动器而不键入:
copy %0 %drive[1]%:\currentlyexecutedfile.bat
copy %0 %drive[2]%:\currentlyexecutedfile.bat
copy %0 %drive[3]%:\currentlyexecutedfile.bat
copy %0 %drive[4]%:\currentlyexecutedfile.bat
有没有办法做到这一点,不知道有多少驱动器而且没有造成错误?
答案 0 :(得分:2)
有没有办法做到这一点,却不知道有多少驱动器 并且没有造成错误?
你应该这样做:
@echo off
setlocal enabledelayedexpansion
set i=0
for /f "tokens=2 delims=:=" %%a in ('wmic logicaldisk get name /value ') do (
set /a i+=1
set drive[!i!]=%%a
)
Rem set drive
Rem If you don't know how many elements the array have (that seems is the case), you may use this method:
for /F "tokens=2 delims==" %%s in ('set drive') do (echo Copy %0 "%%s:\currentlyexecutedfile.bat")
pause