Итак, я пытаюсь создать сценарий, который будет делать несколько вещей, но сначала мне нужно что-то скопировать.
Мне нужно скопировать все файлы из каталога A в B, используя пользователя ввод, который будет указывать файлы для копирования на основе серийного номера или его части.
Т.е. После того, как пользователь вводит sn "###" и выбирает папку X или Y, я хочу, чтобы все файлы в папке с Test_1_051724###.txt были скопированы в каталог B.
Вот что у меня есть на данный момент. В конце концов мне нужно получить файлы с компьютера с Linux, подключенного через Ethernet, но я смогу изменить адреса позже, как только выясню, что я делаю не так с битом копирования.
Я мне удалось создать каталог и скопировать файлы, когда я ввожу «тест», но каждый раз, когда я использую номер, я не копирую. Я попробовал несколько вещей, но так и не смог понять, что я делаю неправильно или чего не хватает.
Некоторые рекомендации были бы полезны.
Спасибо вы.
Я попробовал другой подход и получил сообщение об ошибке:
@echo off
:start
rem Prompt the user for the search string
set /p search_string=Enter the search string:
rem Prompt the user to choose the source directory
echo Choose the source directory:
echo 1. EE1
echo 2. EE2
set /p source_dir_choice=Enter 1 or 2:
rem Set the source directory based on the user's choice
if %source_dir_choice% == 1 (
set source_dir="C:\Users\cliljohn\Documents\DCD\EE1\."
set dest_dir="C:\Users\cliljohn\Documents\DCD\EE1\TestMove1"
) else if %source_dir_choice% == 2 (
set source_dir="C:\Users\cliljohn\Documents\DCD\EE1\."
set dest_dir="C:\Users\cliljohn\Documents\DCD\EE1\TestMove2"
) else (
echo Invalid choice. Exiting.
goto end
)
@REM rem destination directory
@REM if %source_dir_choice% == 1 (
@REM set dest_dir=C:\Users\cliljohn\Documents\DCD\EE1\TestMove1
@REM ) else if %source_dir_choice% == 2 (
@REM set dest_dir=C:\Users\cliljohn\Documents\DCD\EE1\TestMove2
@REM ) else (
@REM echo Invalid choice. Exiting...
@REM goto start
@REM )
rem Create the destination directory if it doesn't exist
if not exist "%dest_dir%" mkdir "%dest_dir%"
rem Copy the files that contain the search string
for %%f in ("%source_dir%\*") do (
if "%%~nxf" gtr "" if "%%~nxf" lss "" if "%%~nxf" contains "%search_string%" (
copy "%%f" "%dest_dir%"
echo Copied file: %%~nxf
)
)
echo.
echo File copy complete.
echo.
goto start
:end
У меня это получилось, но кажется, что он хочет скопировать файл только тогда, когда слово находится в начале.
@echo off
:start
rem Prompt the user for the partial file name
set /p partial_filename=Enter the partial file name:
rem Prompt the user to choose the source directory
echo Choose the source directory:
echo 1. C:\Users\cliljohn\Documents\DCD\EE1
echo 2. C:\Users\cliljohn\Documents\DCD\EE2
set /p source_dir_choice=Enter 1 or 2:
rem Set the source directory based on the user's choice
if %source_dir_choice% == 1 (
set source_dir=C:\Users\cliljohn\Documents\DCD\EE1
) else if %source_dir_choice% == 2 (
set source_dir=C:\Users\cliljohn\Documents\DCD\EE2
) else (
echo Invalid choice. Exiting.
goto end
)
rem Set the destination directory
set dest_dir=C:\Users\cliljohn\Documents\DCD\EE1\TestMove
rem Create the destination directory if it doesn't exist
if not exist "%dest_dir%" mkdir "%dest_dir%"
rem Copy the files that match the partial file name
for %%f in ("%source_dir%\%partial_filename%*") do (
copy "%%f" "%dest_dir%"
echo Copied file: %%~nxf
)
echo File copy complete.
@REM goto start
:end
Подробнее здесь: https://stackoverflow.com/questions/784 ... ial-number
Попытка скопировать файл из одного каталога в другой, используя часть имени/серийного номера. ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение