从文本文件解析文件名会给出错误的详细信息

时间:2014-01-03 13:01:13

标签: windows parsing loops batch-file filenames

请注意我是脚本的新手,所以请保持温和!

我有一个名为list.txt的文本文件只有一行(用于测试),该行是:

  

d:\意大利\ GFM \用户\测试\ avisgfm_1001_1500.txt

我的脚本是:

@echo off
for /f "delims=" %%1 in (list.txt) do (
    echo %%~1
    echo %%~d1
    echo %%~p1
    echo %%~n1
    echo %%~x1
 )

然而,脚本的结果是:

  

'╗┐d:\意大利\ GFM \用户\测试\ avisgfm_1001_1500.txt   C:   \ PCI \'╗┐d:\意大利\ GFM \用户\测试\ avisgfm_1001_1500.txt

有什么想法吗?我是通过Windows批处理文件执行此操作的。

由于

2 个答案:

答案 0 :(得分:0)

元变量应该是(区分大小写)字母。

数字指的是例行程序的参数。

for /f "delims=" %%a in (list.txt) do (
 echo %%~a

等等都可以。

答案 1 :(得分:0)

似乎你已经保存了list.txt,其中包含一些编码,如UTF-8,文件头部有字节顺序标记。 BAT只能处理ASCII文本文件。尝试将list.txt创建为简单的ASCII文本文件。记事本窗体可以做到这一点。

%% 1工作正常,但最好使用字母,例如%% i,就像规范一样。