我有一个批处理文件,该文件列出了一个文件夹及其子文件夹中的所有.jpg文件。然后,将它们另存为批处理文件所在文件夹中的list.txt。
for /R %%x in (*.jpg) do @echo %%~nx >> List.txt
但是我没有在与批处理文件相同的文件夹中创建list.txt,而是尝试在每个文件夹和子文件夹中创建list.txt,因此list.txt将与以下文件保存在同一文件夹中列出的.jpg文件。
现在做什么:
├── Main Folder
│ ├──batch.bat
│ ├──list.txt < All jpg's from all folders listed in here
│ ├── Image Folder
│ │ ├── 1.jpg
│ │ ├── Image Folder 2
│ │ │ ├── 2.jpg
我要实现的目标:
├── Main Folder
│ ├──batch.bat
│ ├── Folder
│ │ ├── 1.jpg
│ │ ├── list.txt < A list of all jpg's in folder1
│ │ ├── Folder 2
│ │ │ ├── 2.jpg
│ │ │ ├── list.txt < A list of all jpg's in folder2
有人知道我要去哪里吗?
答案 0 :(得分:2)
通过重定向到文件>> List.txt
,您可以有效地重定向到当前的工作目录(您从中启动批处理文件的目录)。
相反,告诉它使用%%~dpx
令牌的驱动器/路径:
for /R %%i in (*.jpg) do @echo %%~ni >> %%~dpiList.txt
注意!我将令牌更改为%%i
,因为x也用作令牌扩展名%%~xi
,它更具可读性,看上去也不太混乱。
答案 1 :(得分:1)
如果总是附加到list.txt文件,则需要首先初始化所有list.txt
文件,或者
使用不同的方法:
@Echo off
For /r /D %%A in (*) do If exist "%%~fA\*.jpg" (
Dir /B "%%~fA\*.jpg" >"%%~fA\List.txt"
)