用cmd命令将指定的文件夹中的文件名分别保存到指定文件 (for循环嵌套 引用变量 文件名)
我有若干个文件夹,我希望得到文件夹内的文件名称,并且分别保存到不同的指定文件夹中。我先选2个做试验。我写了下面的代码(可以直接复制到cmdwindow)。如果变成bat文...
我有若干个文件夹,我希望得到文件夹内的文件名称,并且分别保存到不同的指定文件夹中。
我先选2个做试验。
我写了下面的代码(可以直接复制到cmd window)。如果变成bat文件,可能要修改一些地方。
可是在cmd运行的结果是没有产生希望的txt文件。请问如何修改
@echo off
rem 指定存放文件的目录
set FolderName1=d:\recommend\1
set FolderName2=d:\recommend\2
set namefile1=d:\a\name\1.txt
set namefile2=d:\a\name\2.txt
for /l %i in (1,1,2) do (
@echo off
for /f "delims=\" %a in ('dir /b /a-d /o-d "%FolderName%i%\*.*"') do (
echo %a>>"%namefile%i%"
)
)
pause 展开
我先选2个做试验。
我写了下面的代码(可以直接复制到cmd window)。如果变成bat文件,可能要修改一些地方。
可是在cmd运行的结果是没有产生希望的txt文件。请问如何修改
@echo off
rem 指定存放文件的目录
set FolderName1=d:\recommend\1
set FolderName2=d:\recommend\2
set namefile1=d:\a\name\1.txt
set namefile2=d:\a\name\2.txt
for /l %i in (1,1,2) do (
@echo off
for /f "delims=\" %a in ('dir /b /a-d /o-d "%FolderName%i%\*.*"') do (
echo %a>>"%namefile%i%"
)
)
pause 展开
展开全部
用于bat文件:
@echo off
setlocal enabledelayedexpansion
rem 指定存放文件的目录
set FolderName1=d:\recommend\1
set FolderName2=d:\recommend\2
set namefile1=d:\a\name\1.txt
set namefile2=d:\a\name\2.txt
for /l %%i in (1,1,2) do (
for /f "delims=\" %%a in ('dir /b /a-d /o-d "!FolderName%%i!\*.*"') do (
echo %%a>>"!namefile%%i!"
)
)
pause
解释:for中设定变量时,需要开启环境变量延迟,并在调用变量时使用感叹号。
在cmd窗口里使用的代码,由于不能直接开启环境变量延迟,所以只能改变你的原始代码
@echo off
rem 指定存放文件的目录
set FolderName=d:\recommend
set namefile=d:\a\name
for /l %i in (1,1,2) do (
for /f "delims=\" %a in ('dir /b /a-d /o-d "%FolderName%\%i\*.*"') do (
echo %a>>"%namefile%\%i.txt"
)
)
pause
更多追问追答
追问
bat中的代码已经测试,在试验文件夹里没有发现问题。
cmd window那一段里,set的那2行是从那4行修改来的吗?这样就少了几个文件夹。
追答
怎么会少文件夹呢?
你的文件夹既然是1,2,3,4这种编号的,那么完全可以利用for /l产生的数字直接调用啊!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询