Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 为什么';在文本文件中复制带有变量的t dir?_Windows_Batch File - Fatal编程技术网

Windows 为什么';在文本文件中复制带有变量的t dir?

Windows 为什么';在文本文件中复制带有变量的t dir?,windows,batch-file,Windows,Batch File,我正在尝试使用一个变量创建一个带有dir命令结果的txt文件 当我执行命令“Pr?ctica%var%”时,将var设置为一个值,然后它才能正常工作(在cmd中)。但我正在尝试在批处理中执行同样的操作,如下所示:dir/b“Pr?ctica%2”>>temp.txt但该文件是空的,而它不应该是空的 是否%2包含引号?如果是这样,这将导致语法错误。使用%~2删除引号 dir /b "Pr?ctica %~2" >> temp.txt 没有足够的信息 您作为%2提供什么 例如,我有一组

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


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

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

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

没有足够的信息

您作为
%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

愉快地按预期列出文件

奥托,执行

set GROO=with&batchfilename dummy groo&set groo=
将尝试列出“zz?9 groo”或“zz?9 groo*”文件,这些文件不存在,但

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

两者都正确列出了目标

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