Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 搜索部分文件夹名称并返回要与批处理一起使用的目录_Batch File_Search_Directory_Find_Filepath - Fatal编程技术网

Batch file 搜索部分文件夹名称并返回要与批处理一起使用的目录

Batch file 搜索部分文件夹名称并返回要与批处理一起使用的目录,batch-file,search,directory,find,filepath,Batch File,Search,Directory,Find,Filepath,首先,我还是一个脚本初学者,所以请温柔一点。 我正在创建一个备份脚本,我希望能够在网络中搜索文件名的一部分(该文件名位于网络外部HDD上以供备份使用),然后返回目录,以便稍后用于备份USB设备的内容。 我正在搜索的文件夹名称由以下4个元素组成:Date-1234567-Type-User。 我要搜索的部分是7位数的id号,它是唯一的,因为其他元素可能会重复多次。 我使用的当前脚本没有返回任何它给出的未找到的文件,有人能告诉我正确的方向吗?我的脚本如下,我也在windows 7上工作 @echo

首先,我还是一个脚本初学者,所以请温柔一点。 我正在创建一个备份脚本,我希望能够在网络中搜索文件名的一部分(该文件名位于网络外部HDD上以供备份使用),然后返回目录,以便稍后用于备份USB设备的内容。 我正在搜索的文件夹名称由以下4个元素组成:Date-1234567-Type-User。 我要搜索的部分是7位数的id号,它是唯一的,因为其他元素可能会重复多次。 我使用的当前脚本没有返回任何它给出的未找到的文件,有人能告诉我正确的方向吗?我的脚本如下,我也在windows 7上工作

@echo off
:start

set /p path=enter id no.:
for /r %%# in (.) do (
       Echo %%~nx# | find "string" "%path%" 1>NUL && (
               Echo Full Path: %%~nx#
               Echo Filename : %%~nx#
               Echo Directory: %%~p#
       )
)

if defined p (
echo %p%
) else ( Echo file not found
)
pause
goto backup

:backup
if not exist "%p%"\"usb download" md "%p%"\"usb download"

if exist (
xcopy /y "USB" "%p%"\usb download
)

pause
goto start
Xcopy行自行创建一个新文件夹并复制内容,但是我必须手动编写完整的文件路径,这是非常广泛和费力的,因此,如果我能够自动完成这项工作,它将大有帮助。 我提前感谢你们的帮助,我已经在谷歌上搜索了我的心,但正如我所说,我是一个初学者,我的大脑正在融化。 谢谢大家

for /f "delims=" %A in ('dir /ad /b /s z:\*1234567*') do echo %A

这应该会找到它。

您是否试图在循环外部访问变量
%%p
?这是不可能的;您需要将其分配给一个标准变量,如
设置“VAR=%%~p”
,并对剩余的代码使用
%VAR%
。。。您需要将
放在整个路径的周围,而不是每个目录的周围,比如
%VAR%\usb-download”
而不是
%VAR%“\“usb-download”
…变量
p
来自哪里?在
if defined p
echo%p%
等中使用,但我找不到类似
set p=%%~p的东西。顺便说一句,不要更改变量
path
,它有自己的路径,不要将path用作变量。windows使用它查找程序。当cmd提示符打开时,您中断了它。因此,我使用了“Var”而不是“path”,在哪里设置变量?我试图实现的是返回包含网络驱动器中变量的文件的完整文件路径。i、 e试图返回名为“01012001-1234567-TEST-DAVE”的文件的文件路径。我要搜索的用户可定义变量是“1234567”,我想从网络位置“\\NAS-DRIVE\Public\Backup Area”找到它。我上面所做的是玩从各种google搜索中找到的代码。。。我不会说谎的。我只懂一些代码。我真的很挣扎。。。请帮助…在我为/f“delims=“%%A in ect…”使用了一个额外的
%%
之后,这就起作用了