【发布时间】:2017-10-30 14:05:16
【问题描述】:
我在不同位置收集了大量图像,它们都位于一个名为“global_en-us”的文件夹中(指的是在 EN 网站上使用的图像)。所有这些都需要复制到各种其他语言(例如 global_de-de),因为只提供了 EN - 因为图像上没有任何内容是特定于语言的。显然,最好的解决方案是重写站点上的路径以删除对语言的引用,但是每个集合有 3-4 种语言,并且介于 100-120 个集合之间,这是一项太大的任务,因此需要复制一个 bat 脚本他们都需要会更方便。
所有图片的设置都与此类似。 “/assets/images”的路径很重要,我想从那里运行脚本并让它向下运行
c:/somefolder/assets/images/special-offers/some-promo-name/global_en-us/<images>
c:/somefolder/assets/images/layout/some-component-name/global_en-us/<images>
c:/somefolder/assets/images/tournaments/some-tourney-name/global_en-us/<images>
我目前有一个脚本,我在对 bat 脚本如何真正工作的了解很少的情况下拼凑在一起,您可以指定一个包含 global_en-us 文件夹的位置,它将复制到所有需要的语言。我在下面复制了它:
@echo off
IF EXIST log.txt (
del log.txt
)
set /p folder="Enter location : "
set folderTest=%folder:~-1%
echo %folderTest% > log.txt
if %folderTest% == \ echo "slash found" > log.txt
if NOT %folderTest% == \ set folder=%folder%\
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_bg-bg\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_pt-br\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_cs-cz\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_da-dk\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_de-de\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_el-gr\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_en-us\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_es-es\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_es-la\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_et-ee\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_fi-fi\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_fr-fr\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_hr-hr\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_hu-hu\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_is-is\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_it-it\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_ja-jp\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_lt-lt\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_lv-lv\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_nl-nl\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_no-no\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_pl-pl\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_pt-pt\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_ro-ro\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_ru-ru\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_sv-se\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_si-si\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_ua-ua\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_zh-cn\"
xcopy /Y /S "%folder%global_en-us\*.*" "%folder%global_zh-tw\"
如果现在变得更清楚,我想要的是,我不必在每个文件夹上运行 100-120 次,例如“c:/somefolder/assets/images/special-offers/some-promo- name/”,我可以告诉它“c:/somefolder/assets/images/”,让它继续工作,当它找到“global_en-us”时,它会根据需要执行 xcopy,然后返回继续.
【问题讨论】:
标签: windows batch-file recursion xcopy