我需要编写一个批处理脚本来取悦用户的文件名。
例如,用户启动 .bat 文件,选择“删除文件”选项,脚本等待文件名,然后用户将其写入一行,如file1.txt file2.txt file3.txt file4.txt
.
如何获取像数组元素这样的文件名以便以后使用?
我需要编写一个批处理脚本来取悦用户的文件名。
例如,用户启动 .bat 文件,选择“删除文件”选项,脚本等待文件名,然后用户将其写入一行,如file1.txt file2.txt file3.txt file4.txt
.
如何获取像数组元素这样的文件名以便以后使用?
没有的版本delayed expansion
:
@ECHO OFF &SETLOCAL
set "filepattern=*.txt"
for /f "tokens=1*delims=:" %%a in ('dir /b /a-d "%filepattern%"^|findstr /n $') do (
set "filename[%%a]=%%~b"
)
for /f "tokens=2delims==" %%a in ('set "filename"') do (
echo "%%~a"
)
setlocal EnableDelayedExpansion
:deleteFiles
set /P "filenames=Enter file names to delete: "
rem Grab filenames in an array
set n=0
for %%a in (%filenames%) do (
set /A n+=1
set "filename[!n!]=%%~a"
)
rem For example, to process the filenames:
for /L %%i in (1,1,%n%) do (
echo %%i- !filename[%%i]!
)
文件名列表必须用空格(或逗号或分号)分隔;如果名称包含空格,则必须用引号引起来。
有关数组的更多信息,请参阅这篇文章。