我正在 Windows .bat 文件中使用 for 循环来制作列出目录中文件的文本文件。
FOR /R %%G in (*) DO (
ECHO %%~zG %%~nxG >> zzz-list.txt
)
[手机不允许我输入制表符;~z 和 ~nx 之间的空格是 6 个空格,1 个制表符]
输出类似于(同样,没有制表符):
134 zzz-列表.txt 16931 其他文件 3249237 另一个文件 269164509 第三文件
我希望它是(为了便于阅读):
134 16931 3249237 269164509
我需要将 ~z 放入一个变量中,测试长度,然后用正确数量的空格向前填充。理想情况下,脚本会遍历所有文件以查找最大大小,并将其设置为要填充的长度,但我可能乐意将该长度硬编码为一个相当大的大小。(即:每行开头的几个额外空格不会破坏交易)。
我在设置和显示变量时遇到了麻烦,更不用说对它们运行操作了。
尝试过:
SET _var1=%%~nxG
ECHO %_var1%
无论有没有引号,对我来说都不起作用。
答案1
在字符串前面添加空格,然后显示最右边的 12 个字符的示例:
@echo off
setlocal enabledelayedexpansion
for %%N in (1 12 123 1234 12345 123456 1234567 12345678) do (
set numberstring= %%N
echo !numberstring:~-12!
)
输出为:
1
12
123
1234
12345
123456
1234567
12345678