gpt4 book ai didi

windows - 如何允许用户选择要复制的目录?

转载 作者:可可西里 更新时间:2023-11-01 10:38:07 25 4
gpt4 key购买 nike

我正在尝试编写一个基本上用于复制目标的批处理文件。现在,我想把它放到其他人可以使用它的地方,而不必进入并编辑目录和目的地。有没有办法将批处理文件写入提示的位置,询问用户要复制的目录,并询问用户要将其复制到的驱动器?

这是我已经使用了一段时间的东西。

@echo off
:: variable
set backupdir="Destination"
set backupcmd=xcopy /e /h /f /y /v /c /i /r /g /k /d
echo.
echo +++ Backing Up Data +++
echo.
echo.
%backupcmd% "Directory\*.*" "%backupdir%\Data"
timeout /t 2
cls
echo Backup Complete
echo.
echo.
timeout /t 2
cls
echo.
echo +++ Now taking hidden and system attributes off of folders +++
echo.
echo.
echo.
attrib -s -h "Destination\Data"
echo.
echo.
timeout /t 3

有什么方法可以通过使用 xcopy 来改进它吗?

最佳答案

你可以使用:

SET /P variable=[promptString]

来自文档:

The /P switch allows you to set the value of a variable to a line of input entered by the user. Displays the specified promptString before reading the line of input. The promptString can be empty.

你可以像这样使用它:

set /p backupdir=Enter Destination Directory: 

和:

set /p sourcedir=Enter Source Directory: 

然后将您的复制命令更改为:

%backupcmd% "%sourcedir%\*.*" "%backupdir%\Data"

并且不要忘记您的 attrib 命令(应该已经使用了 %backupdir%):

attrib -s -h "%backupdir%\Data"

作为替代方案,考虑允许可选的命令行参数:

dobackup Destination BackupDir

实现这些更改:

if "%1" == "" (
set /p backupdir=Enter Destination Directory:
) else (
set backupdir=%~1
)

if "%2" == "" (
set /p sourcedir=Enter Source Directory:
) else (
set sourcedir=%~2
)

最后,在 @echo off 之后添加 SETLOCAL 行将使您的命名变量远离全局环境空间。

关于windows - 如何允许用户选择要复制的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com