-1

我正在尝试将一系列 bash 脚本转换为批处理文件。我对脚本的一部分有以下问题,该部分执行以下操作:

连接到网络共享,为每个具有特定根名称的文件夹找到最新版本,将里面的 .zip 复制到本地位置。它应该在一个目录中找到的所有文件夹中循环这个方法,这里是这个的 bash 版本:

for f in /xxx/xxx/xxx.xxx.game_android*
do
        cd $f
        ls | sed 's/_//g' | sed 's/test.sh//g' | sed 's/plist.txt//g' | sed 's/^...//' > $dir/res/temp_list.txt
        sort $dir/res/temp_list.txt > $dir/res/temp_list_sorted.txt
        rm $dir/res/temp_list.txt
        export atom=`tail -n1 $dir/res/temp_list_sorted.txt`
        export final=`ls | grep "$atom"`
        rm $dir/res/temp_list_sorted.txt
        cd $final
        echo "Copying atom: $atom"
        cp *.zip $dir/res/sb5-games/
        echo "Copying File: $f"
done 

这很好用,但是在尝试将其转换为批处理时,我遇到了很多问题。我能够安装 GnuWin32 CoreUtils、Sed 和 Grep,因此我能够使用所有相同的工具,但循环遍历目录中所有文件夹的实际过程不起作用。

我的问题:我将使用什么格式的 FOR 命令来遍历带有通配符的目录中的所有文件夹,那么我将如何在每个文件夹上执行我需要的一系列命令?

谢谢。

4

1 回答 1

1

WhateverDirectory您可以在批处理文件中使用以下构造遍历所有文件夹:

FOR /F "tokens=*" %%F IN ('DIR /AD /B WhateverDirectory' ) DO (
  PUSHD "WhateverDirectory\%%F"
  ECHO You are now in subdir %%F of WhateverDirectory
  ECHO and can do your stuff here
  ECHO etcetera
  POPD
)

一个好的批处理指南是http://www.ss64.com/nt/或 checkout什么是好的 Windows 批处理脚本参考指南?

于 2012-07-03T02:31:03.987 回答