Во-первых, я все еще новичок в написании сценариев, поэтому, пожалуйста, будьте осторожны. Я создаю резервный скрипт, и я хочу, чтобы иметь возможность искать сеть для части имени файла (которая находится на сетевом внешнем жестком диске для использования в резервном режиме), а затем вернуть каталог, который будет использоваться позже, для резервного копирования содержимого USB-устройство. Имя папки, которую я ищу, состоит из 4 элементов: Date-1234567-Type-User. Часть, которую я ищу для поиска, представляет собой 7-значный номер идентификатора, который уникален, поскольку другие элементы могут дублироваться несколько раз. текущий скрипт я использую это ничего она дает файл не найден, не возвращая, кто-то может мне точку в правильном направлении, мой скрипт следующим образом, и я работаю над окнами 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 линии сами работают над созданием новой папки и копированием содержимого, однако я должен написать полный путь к файлу вручную, который довольно обширен и трудоемкий, поэтому, если бы я мог автоматизировать это, это бы очень помогло. Я благодарю вас за вашу помощь заранее, я googled и искал мое сердце, но, как я уже сказал, я новичок, и мой мозг тает. спасибо всем.
Вы пытаетесь получить доступ к переменной 'for'' %% p' вне цикла? это невозможно; вам нужно назначить его стандартной переменной типа 'set 'VAR = %% ~ p" 'и использовать'% VAR% 'для оставшегося кода ... и вам нужно поместить' '' 'вокруг всех путей, а не вокруг каждого каталога, например '%% VAR% \ usb download" 'вместо'%% VAR% "\" usb download "' ... – aschipfl
Откуда возникает переменная 'p'? Используется в 'if defined p' и в' echo% p% 'и т. Д., Но я не могу найти ничего подобного' set p = %% ~ p # '. BTW, не изменяйте переменную 'path', у нее есть свое [специальное значение] (http://ss64.com/nt/path.html) – JosefZ
Не используйте путь как переменную. Он используется окнами для поиска программ. Вы нарушаете подсказку cmd, пока она открыта. –