Jim*_*ell 36 shell-script batch-file disk-operating-system
如何在 DOS 批处理脚本中设置数组变量?我想用要处理的文件名列表加载它。我真的很想保持这个尽可能简单。谢谢你。
Jim*_*ell 49
我想到了:
set FILE_LIST=(file1.dll file2.exe file3.dll file4.dll file5.dll)
set BIN_PATH="C:\Program Files\My App Folder\bin"
set BAK_PATH="C:\Program Files\My App Folder\bin\Backups"
set DEV_PATH="C:\My Dev Path\bin\Debug"
for %%i in %FILE_LIST% do copy %BIN_PATH%\%%i %BAK_PATH%
for %%i in %FILE_LIST% do copy %DEV_PATH%\%%i %BIN_PATH%
Run Code Online (Sandbox Code Playgroud)
几年前我做过类似的事情,所以我花了一些时间弄清楚。(顺便说一句,我讨厌重新发明轮子。)现在它发布在这里,希望其他人也会发现它也很有用。
小智 15
是的,您可以批量处理数组。虽然它们与 C 或 VB 中的数组不完全一样,但您可以这样做:
@echo off
setlocal enabledelayedexpansion
set arrayline[0]=############
set arrayline[1]=#..........#
set arrayline[2]=#..........#
set arrayline[3]=#..........#
set arrayline[4]=#..........#
set arrayline[5]=#..........#
set arrayline[6]=#..........#
set arrayline[7]=#..........#
set arrayline[8]=#..........#
set arrayline[9]=#..........#
set arrayline[10]=#..........#
set arrayline[11]=#..........#
set arrayline[12]=############
::read it using a FOR /L statement
for /l %%n in (0,1,12) do (
echo !arrayline[%%n]!
)
pause
Run Code Online (Sandbox Code Playgroud)
来自 Jakash3 的博客,批量数组中的描述了如何在命令提示符中模拟数组。
文章中包含一个名为 array.bat 的批处理文件,其中包含用于处理数组的函数库。您需要选择文章中的文本并将其粘贴到 bat 文件中。
例如,以下测试脚本:
@echo off
set book[0]=Avatar
set book[1]=The Green Mile
set book[2]=The Count of Monte Cristo
call array.bat add book Babo
call array.bat len book length
echo I have %length% books you can borrow.
echo Pick one:
echo.
echo 0) Avatar
echo 1) The Green Mile
echo 2) The Count of Monte Cristo
echo 3) Babo
echo.
set /p pick=
call array.bat getitem book %pick% title
echo.
echo You picked %title%.
Run Code Online (Sandbox Code Playgroud)
生成以下输出:

| 归档时间: |
|
| 查看次数: |
151822 次 |
| 最近记录: |