通过 cmd 导航到以 P_ 开头的文件夹

通过 cmd 导航到以 P_ 开头的文件夹

我有个问题。

我有一个脚本,我想将一个文件(这里以 S_ 开头)移动到一个文件夹,该文件夹始终以 P_ 开头。

这是目录中唯一我想将其移动到的文件夹,但是当我像

move "C:\Temp\Test\S_*" "C:\Move\New\P_*"

它会在中创建一个新文件C:\移动\新建,但我希望它位于唯一以 P_ 开头的文件夹中。

希望你能收到。提前谢谢。:-)

答案1

用于for扩展通配符:

for /d %x in (C:\Move\New\P_*) do set dest=%%x

这会将%dest%变量设置为您想要的目录;将变量与 一起使用move

(这通常会循环全部匹配的文件(或指定文件夹/d)并最终设置%dest%为最后一项。如果只有一个匹配项,它当​​然是最后一个。)

答案2

@echo off

cd /d "C:\Move\New\P_Full_Name" && move "C:\Temp\Test\S_*" .

1.使用完整路径名输入目标文件夹:

cd /d "C:\Move\New\P_Full_Name" 

2.使用该操作符仅当命令返回成功时&&才会执行该move命令,否则忽略该命令:cd /dmove

cd /d ... && move ...

3.当你位于target文件夹中时(cd /d命令返回成功),命令解释器(cmd.exe)将把当前文件夹识别为命令.中的目标“ ” move

move "C:\Temp\Test\S_*" .

  • 观察1:move命令和/或命令解释器(cmd.exe)将不会翻译/解释通配符“ *”来计算目标的全名。

  • 观察2:循环遍历名称以以下名称开头的多个文件夹P_
@echo off

cd /d "C:\Move\New\" 

for /d %%i in (P_*)do cd /d "%%~fi" && =;(
      2>nul move "C:\Temp\Test\S_*" . 
    );=

其他资源:

相关内容