我正在尝试使用变量创建一个带有dir命令结果的txt。
当我执行命令dir /b "Pr?ctica %var%"
时,将var设置为一个值,然后才能正常工作(在cmd中)。但是我试图在批处理中执行相同的操作,例如:dir /b "Pr?ctica %2" >> temp.txt
但文件是空的,不应该!
答案 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&ERS.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!*"
都正确列出了目标。