0

我需要编写一个批处理脚本来取悦用户的文件名。

例如,用户启动 .bat 文件,选择“删除文件”选项,脚本等待文件名,然后用户将其写入一行,如file1.txt file2.txt file3.txt file4.txt.

如何获取像数组元素这样的文件名以便以后使用?

4

2 回答 2

1

没有的版本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"
)
于 2013-09-14T17:02:55.063 回答
1
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]!
)

文件名列表必须用空格(或逗号或分号)分隔;如果名称包含空格,则必须用引号引起来。

有关数组的更多信息,请参阅这篇文章

于 2013-09-14T15:17:45.233 回答