batch for循环不显示所需的组件

时间:2014-03-10 20:27:23

标签: batch-file for-loop

有以下内容现在是正确的..您不能使用FOR / f构造.. FOR %% G可以正常工作。

编辑 - 不在我的工作计算机上,但是我看到了相同的结果..所以,只需使用D3F4ULT的代码:

@echo off
echo Current Directory: %CD%
REM 22310611

for /f %%G in ( 'dir /b /a-d "C:\11\*"' ) do (
  echo f = %%~fG
  echo d = %%~dG
  echo p = %%~pG
  echo n = %%~nG
  echo x = %%~xG
  echo s = %%~sG
  echo a = %%~aG
  echo t = %%~tG
  echo z = %%~zG
  pause
)

结果是:

Current Directory: C:\batch
f = C:\batch\!kix.zip
d = C:
p = \batch\
n = !kix
x = .zip
s = C:\batch\!kix.zip
a =
t =
z =
Press any key to continue . . .

看到的问题是: C:\ batch是我正在执行脚本的文件夹 C:\ 11是我试图从...获取信息的目标文件夹。

变量问题: p不正确 a,t,z未填充

让我们提出我建议的改变。

@echo off
echo Current Directory: %CD%
REM 22310611

REM - ORIGINAL: for /f %%G in ( 'dir /b /a-d "C:\11\*"' ) do (
for %%G in ( C:\11\* ) do (
  echo f = %%~fG
  echo d = %%~dG
  echo p = %%~pG
  echo n = %%~nG
  echo x = %%~xG
  echo s = %%~sG
  echo a = %%~aG
  echo t = %%~tG
  echo z = %%~zG
  pause
)

结果是:

Current Directory: C:\batch

C:\batch>fllist.bat
Current Directory: C:\batch
f = C:\11\!kix.zip
d = C:
p = \11\
n = !kix
x = .zip
s = C:\11\!kix.zip
a = --a------
t = 07/31/2011 08:29 AM
z = 25732801
Press any key to continue . . .

希望这有助于理解问题所在。

1 个答案:

答案 0 :(得分:0)

查看下面的代码是否适合您,如果可能的话,使用我的代码发布您在那里发生的事情的输出。

<强>代码:

@echo off

REM 22310611

for /f %%G in ( 'dir /b /a-d "D:\logs\*"' ) do (
  echo f = %%~fG
  echo d = %%~dG
  echo p = %%~pG
  echo n = %%~nG
  echo x = %%~xG
  echo s = %%~sG
  echo a = %%~aG
  echo t = %%~tG
  echo z = %%~zG
  pause
)

pause

<强>输出

f = D:\logs\1.jpg
d = D:
p = \logs\
n = 1
x = .jpg
s = D:\logs\1.jpg
a = ---------
t = 10/03/2014 16:55
z = 128928