使用特定名称更新每个子目录中的文件

时间:2019-04-29 20:54:36

标签: powershell batch-file subdirectory

我有一个,它使用从URL中提取文件,然后在特定目录中输出/更新文件。但是我有许多这样的目录,唯一改变路径的是\command\\setup\之间的数字。我将如何将其自动放入每个文件夹中?

基本上,我想在该路径的每个install 中输出下载的文本文件。

我又该如何默默地实现它?

@echo off
echo !!! PRESS ANY KEY TO CONTINUE AND UPDATE!!!
pause

powershell -Command "Invoke-WebRequest http://example.com/log/read.txt" -OutFile C:\Users\Administrator\AppData\Roaming\base\command\234235234\setup\install\read.txt 2>NUL >NUL

echo !!! DONE NOW !!!
echo !!! YOU CAN RE-OPEN NOW !!!

1 个答案:

答案 0 :(得分:0)

 for /d /r "dirname" %%a in (*) do if /i "%%~nxa"=="install" echo %%a

对您可能有用。

您的要求不清楚。您要将文件仅复制到install还是...\234235234\..的{​​{1}}子目录中?

...\*\...替换为起始目录的名称,无论是dirname还是...\234235234\..,并且我显示的命令将报告{下包含的所有C:\Users\Administrator\AppData\Roaming\base\command目录{1}}。然后,您需要做的就是将install更改为适当的dirname命令-在提示符下查看echo。您可以通过附加copy(抑制消息并抑制错误消息)来抑制copy /?的响应

copy为列表元素的

>nul 2>nul将处理从指定目录开始的所有子目录的列表。 for /d /r命令在两种情况下(/ i)仅选择与*匹配的叶目录


因为

if

也不检测隐藏目录,另一种方法是

install

在这种情况下应该是

for /d /r ...

for /f "delims=" %%a in ('dir /s /b /ad "dirname" ') do if /i "%%~nxa"=="sub1" echo %%a 命令以for /f "delims=" %%a in ('dir /s /b /ad "C:\Users\Administrator\AppData\Roaming\base\command" ') do if /i "%%~nxa"=="sub1" echo %%a 基本(仅名称)形式生成一个列表,其中dir包括子目录,仅/b个目录(名称为{{1 }}属性集)。该列表由/s逐行处理,没有分隔符,因此整行(包括空格,如果有的话)都分配给/ad并显示。