我不是一个脚本,非常初学者。我将从1950多个目录中删除* .bat文件中的文本。我有正确的命令删除我需要的部分文件,我可以将它们复制到一个新的输出文件(不覆盖旧的结构)。
示例:
bin\awk "/^:COMMANDS/,0" F1\kits\test\engine\blah.bat > F2\kits\test\engine\blah.bat
经过测试并完成工作。
现在我想对其余1949年目录中的所有其他文件执行此操作。
所以理论上这是需要做的事情:
bin\awk "/^:COMMANDS/,0" F1\kits\test\engine\blah.bat > F2\kits\test\_engine\blah.bat
bin\awk "/^:COMMANDS/,0" F1\kits\test1\engine\blah.bat > F2\kits\test1\engine\blah.bat
bin\awk "/^:COMMANDS/,0" F1\kits\test2\engine\blah.bat > F2\kits\test2\engine\blah.bat
bin\awk "/^:COMMANDS/,0" F1\kits\test3\engine\blah.bat > F2\kits\test3\engine\blah.bat
bin\awk "/^:COMMANDS/,0" F1\kits\test4\engine\blah.bat > F2\kits\test4\engine\blah.bat
更改因素是目录(test*
)。但如果能以更有效的方式完成,那将是非常好的。
这是在Windows上完成的(更喜欢* nix ...)。如何将其包装成一个漂亮的脚本?
答案 0 :(得分:0)
您可以尝试以下方式:
for x in F1\kits\*; do y=$(echo $x | tr '\\' ' ' | awk '{print $3}'); echo $y; done
查看您是否获得test
,test1
等。如果是,请尝试执行以下命令:
for x in F1\kits\*; do
y=$(echo $x | tr '\\' ' ' | awk '{print $3}')
bin\awk "/^:COMMANDS/,0" F1\kits\$y\engine\blah.bat > F2\kits\$y\_engine\blah.bat
done