为什么没有变量dir复制到文本文件中?

时间:2013-11-21 15:11:06

标签: windows batch-file

我正在尝试使用变量创建一个带有dir命令结果的txt。

当我执行命令dir /b "Pr?ctica %var%"时,将var设置为一个值,然后才能正常工作(在cmd中)。但是我试图在批处理中执行相同的操作,例如:dir /b "Pr?ctica %2" >> temp.txt但文件是空的,不应该!

2 个答案:

答案 0 :(得分:2)

%2是否包含引号?如果是这样,这将导致语法错误。使用%~2删除引号。

dir /b "Pr?ctica %~2" >> temp.txt

答案 1 :(得分:0)

信息不足。

你在%2提供什么?

例如,我有一组文件

ZZQ9 WITH SPACES.BAT
ZZQ9 WITH%PCNT%K.BAT
ZZQ9 WITH&AMPERS.BAT
ZZQ9 WITH,COMMAK.BAT
ZZQ9 WITH;SEMITK.BAT
ZZQ9 WITH^CARETK.BAT

执行

batchfilename dummy with

其中batchfilename.bat包含

dir /b "zz?9 %2"

不产生输出(因为没有文件“zz?9 with”但是

dir /b "zz?9 %2*"

高兴地按预期列出文件。

OTOH,执行

set GROO=with&batchfilename dummy groo&set groo=

会尝试列出“zz?9 groo”或“zz?9 groo *”文件,但这些文件不存在,但

CALL DIR /b "ZZ?9 %%%2%%*"

SETLOCAL enabledelayedexpansion
CALL DIR /b "ZZ?9 !%2!*"

都正确列出了目标。