如何在Windows命令提示符中给文件每行添加4个前导空格并输出?
问题解决方法
你的问题出在for /f命令的参数使用上:当文件路径包含空格时,直接用引号包裹路径会让for /f把路径当成字符串处理,而非读取文件内容。需要添加usebackq参数修正这个行为。
正确命令写法
使用带usebackq参数的for /f命令,同时保留路径的双引号包裹:
for /f "usebackq tokens=* delims=" %i in ("%myfile%") do @echo %i
参数说明
usebackq:核心修正参数,让for /f将双引号包裹的内容识别为文件路径,而非普通字符串;不加此参数时,引号内的内容会被当作待处理文本,这就是你之前只输出路径的原因。tokens=* delims=:确保读取整行内容(包括行首的空格),避免默认分隔符截断行首空格。
完整流程(可选)
如果要一次性完成定位文件+添加空格输出,可以合并命令:
for /f "tokens=*" %i in ('dir /s/b test.txt') do @for /f "usebackq tokens=* delims=" %j in ("%i") do @echo %j
该命令会遍历所有找到的test.txt文件,给每个文件的每行内容添加4个前导空格后输出。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

