我在Windows中有一大组文件夹,命名如下:
**Firstname Lastname_xxxxxxx_**其中xxxxxxx为数字ID。
所有这些子文件夹都位于名为“T:\Tests2022”的文件夹中。
这些目录如下所示:
约翰·史密斯_12345678_
玛丽·斯科特_87945687_
威廉·泰尔_9875348_
无名氏_57982388_
例如,完整路径为T:\Tests2022\John Smith_12345678_
我有一个文档“testscript.txt”,我想将其移动到每个文件夹中。该文件也位于“Tests2022”的根目录中(即T:\Tests2022\testscript.txt)
但是,我想在文件前面加上“FirstName_”。(例如,在第一个文件夹中,该文件将被命名为“T:\Tests2022\John Smith_12345678_\John_Testscript.txt”)。
理想情况下,如果世界是完美的,则该文件将命名为“John Smith_tescript.txt”)
只需在cmd行中移动文件就很容易:“Moveit.bat”包含
for /D %%a in (".\*.*") do xcopy /y /d ".\testscript.txt" "%%a\"
我可以手动执行此操作,但我必须每两周对不同的测试目录列表执行一次类似的操作,这样宏将是理想的。
我需要帮助将其移动到PowerShell,然后使用PowerShell来解析和收集文本到第一个空格(名字/姓氏对之间)或第一个下划线。
1条答案
按热度按时间ukxgm1gy1#
内联注解应该有助于理解其中的逻辑。如果您想学习一些新知识,您应该亲自查看脚本中使用的命令。
此链接https://regex101.com/r/h0SYVz/1应解释以下内容: