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



我有一个批处理文件,该文件使用powerShell从URL扣除文件,然后在特定目录中输出/更新文件。但是我有许多这些目录,唯一改变路径的目录是commandsetup之间的数字。我将如何自动将文件放入每个文件夹中?

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

我还如何使它默默地发生?

@echo off
echo !!! PRESS ANY KEY TO CONTINUE AND UPDATE!!!
pause
powershell -Command "Invoke-WebRequest http://example.com/log/read.txt" -OutFile C:UsersAdministratorAppDataRoamingbasecommand234235234setupinstallread.txt 2>NUL >NUL
echo !!! DONE NOW !!!
echo !!! YOU CAN RE-OPEN NOW !!!
 for /d /r "dirname" %%a in (*) do if /i "%%~nxa"=="install" echo %%a

可能对您有用。

您的要求尚不清楚。您要仅将文件复制到仅...234235234..install子目录,还是...*...

dirname替换为启动目录的名称,无论是...234235234..还是C:UsersAdministratorAppDataRoamingbasecommand,我显示的命令将报告dirname中包含的所有install目录。然后,您需要做的就是将echo更改为适当的copy命令 - 从提示符中请参见copy /?。您可以通过附加>nul 2>nul抑制copy的响应(压制消息并抑制错误消息(

for /d /r带有*作为列表元素将处理从提名目录开始的所有子目录的列表。if命令仅选择匹配install的LEAF目录(/i(


因为

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:UsersAdministratorAppDataRoamingbasecommand" ') do if /i "%%~nxa"=="sub1" echo %%a

dir命令在/b基本(仅名称(表单,/s中产生一个列表,其中包括子目录,仅目录的/ad(带有directory属性集的名称(。此列表是由for /f逐行处理的,没有定销程序,因此将整个行(包括空格(如果有((分配给%%a并显示。

最新更新