
我试图通过包含每行中的path的.txt(例如folder_List.txt)文件循环,如:
/subdir/folder/node-folder /subdir/folder/node-folder-2 /subdir-2/folder4/node-folder/node-folder-1
我需要使用pushd命令连接到networking驱动器,然后逐行遍历txt文件中的所有这些path,然后仅列出特定格式的文件,如“ .HTML, .htm, .pdf, .txt”。
假设,当我这样做
pushd \mynetworkdriverootfolder
我的networking驱动器被映射为Z:
批量中的随机文件select“valIDation”
bash脚本运行各种openssl密码来解密文件
合并两个文件中的文本,输出到另一个文件
可能“循环”和“输出”不能在我的bash脚本中正常工作
在按下键时停止C ++中的无限循环
这是我创build的batch file:
@echo on cls cd /d "Z:" for /F "tokens=*" %%A in (C:Usersuser1Desktopnetworkfolder_List.txt) do ( set location = %%A cd location @echo %location% dir /S/Q *.htm,*.HTML,*.aspx,*.asp,*.PHP >> C:Usersuser1Desktopnetworkfiles_search_output.csv ) echo "cd" pause
循环开始,但它遍历networking驱动器的所有目录,而不是那些在我的folder_List.txt文件中。
不知道我在哪里不正确。 我做了大量的研究,find可能的解决scheme,但无法解决问题的原因
如何在for循环内dynamic引用数组? 批量
Cmultithreading处理,意外的cpu消耗
如何循环通过命令的输出?
在读取行时,awk $行带有多个分隔符
如何使用for循环在bash脚本中复制和重命名文件?
@echo on cls cd /d "Z:" for /F "tokens=*" %%A in (C:Usersuser1Desktopnetworkfolder_List.txt) do ( pushd %%A echo %%A dir /S/Q *.htm,*.PHP >> C:Usersuser1Desktopnetworkfiles_search_output.csv popd ) echo "cd" pause
第一个问题 – 在一个字符串set , 两个空格是重要的。 因此,您将值分配给“位置空间 ”
第二个问题 – 如果在一个代码块(括号内的命令序列)内改变一个普通的环境变量(比如location )的值,你需要使用delayed expansion – 在SO上查看关于这个主题的无尽的文章。
接下来,中间的cd没有任何效果,因为在遇到for关键字时没有定义location
接下来 – 你的cd回到根目录只是echo (我离开了)
简单的方法 – 不需要cd s – PUSHD所需的目录,当您完成该目录中的命令时, POPD回到执行PUSHD时所在的PUSHD
潜在的问题:winbatch中的路径分隔符是 – /被用作开关指示符。 有时候winbatch做转换。 其他,不是。
如果你真的拥有/在文件中,那么你确实需要将变量从%%A传递给一个常规变量,因为对元变量的字符串 *** 作不被支持,所以你可能需要
插入一行
setlocal enabledelayedexpansion
在@echo off后
改回
set "location=%%A" set "location=!location:/=!" pushd !location!
setlocal enabledelayedexpansion命令调用delayed expansion模式,其中!var! 提取变量的当前 (运行时间)值(而%var%是块被解析时的值)
在变量的值内,以下set将更改为 。 引号确保任何尾部空格不包含在赋值中。
请注意@简单地抑制默认的“回显命令到屏幕”模式。 @echo off关闭echo-command-to-screen(自启动@自身被抑制)。 此后不需要在批处理中使用@echo 。
总结以上是内存溢出为你收集整理的在txt文件中循环并使用batch file列出内容全部内容,希望文章能够帮你解决在txt文件中循环并使用batch file列出内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)