我想要一个文件夹中所有文本文档的批处理脚本。 这是我到目前为止所做的:
@ECHO off
title Test
set dir1=C:\Users\Family\Desktop\Example
:Start
cls
echo 1. test loop
echo 2. Quit
set /p choice=I choose (1,2):
if %choice%==1 goto test
if %choice%==2 exit
:test
cls
echo running loop test
FOR %%n in (%dir1% *.txt) DO echo %dir1%\%%n
echo Done
pause
我想输出的是:
running loop test
C:\Users\Family\Desktop\Example\doc 1.txt
C:\Users\Family\Desktop\Example\doc 2.txt
Done
但我明白了:
running loop test
C:\Users\Family\Desktop\Example\C:\Users\Family\Desktop\Example
C:\Users\Family\Desktop\Example\doc 1.txt
C:\Users\Family\Desktop\Example\doc 2.txt
Done
答案 0 :(得分:11)
主要问题似乎是(%dir1%* .txt)
之间的空格可能是
@ECHO off
title Test
set "dir1=C:\Users\Family\Desktop\Example"
:Start
cls
echo 1. test loop
echo 2. Quit
set /p choice=I choose (1,2):
if %choice%==1 goto test
if %choice%==2 exit
:test
cls
echo running loop test
FOR %%X in ("%dir1%\*.txt") DO echo %%~dpnX
echo Done
pause
引号用于避免路径中的空格或其他特殊字符出现问题。
修改强>
%%~dpnX
用于将%%X
的文件名扩展为
d
=驱动器(C :)
p
=路径(\ Users \用户家庭\桌面\实施例)
n
= filename(test1)(不带扩展名)
f
=完整文件名(C:\ Users \ Family \ Desktop \ Example \ test1.txt)。
此处解释了可能的修饰符 FOR /?