无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3805|回复: 8
打印 上一主题 下一主题

[求助] 如何让批处理运行后,出现选择盘符界面?

[复制链接]
跳转到指定楼层
1#
发表于 2019-9-12 18:27:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zgvygcj 于 2019-9-12 19:35 编辑

我向往某个盘符复制几个文件进去,但这个盘符每台电脑情况不一样,有的是C盘,有的是D盘等。所以我想在我实行我的批处理之前,出现一个手动选择你盘符,这样每台电脑就可以按自己的情况来指定盘符,选好后,再实行我的批处理。
   想问各们大神帮我写个,尽量简单。

如:我要把1.txt文件复制到C盘(C盘不是固态定的)

电脑A,它的C盘其实是D盘,所以运行批处理后,需要它手动输入D盘(或者选择1,2,3,4...),这时批处理再根据它输的D盘,把1.txt文件复制到D盘
2#
发表于 2019-9-12 19:05:50 | 只看该作者
choice语句,在cmd语句里Help下

点评

完全不懂呀,能帮我写个吗  发表于 2019-9-12 19:28
回复

使用道具 举报

3#
发表于 2019-9-12 22:04:06 | 只看该作者
直接查找指定盘有没有windows目录,然后根据获取到的盘来复制文件不就好了
回复

使用道具 举报

4#
发表于 2019-9-12 22:17:56 | 只看该作者
列举盘符的方式有很多种:

  1. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%a:\ echo %%a:
复制代码

  1. fsutil fsinfo drives
复制代码

  1. mountvol | find ":\"
复制代码


需要管理员权限,并稍慢,但是详细
  1. echo;list vol | diskpart | more +5 | find /i /v "DISKPART>"
复制代码

  1. fltmc volumes
复制代码



我建议,如果能确定目标盘符有什么规律,最好能去掉选择环节自动查找,比如有特定目录或文件存在?

点评

特定的目录的话,就是C盘,我就是针对C盘的,需要管理员权限的,你能帮我全部写下来吗,写到一起去。手动指定和自动都可以,我要实际去测试下,看哪种好。【感谢】  发表于 2019-9-12 23:38
回复

使用道具 举报

5#
发表于 2019-9-13 05:14:55 | 只看该作者
本帖最后由 holley2008 于 2019-9-13 06:24 编辑

不是有环境变量%systemroot%、%SystemDrive%吗?
举例:
  1. @echo off
  2. for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  3.     if /i "%%i:"=="%SystemDrive%" (
  4.                 echo,系统分区:%%i
  5.      )
  6. )
  7. pause>nul
复制代码

你完全用不到。
直接:copy /y 1.txt %SystemDrive% 或者 xcopy /r/y 1.txt %SystemDrive%
回复

使用道具 举报

6#
发表于 2019-9-13 08:45:36 | 只看该作者
本帖最后由 窄口牛 于 2019-9-13 08:47 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('mshta "%~f0"') do echo;%%a
  3. pause&exit /b


  4. <script>
  5. var Shell = new ActiveXObject("Shell.Application");
  6. var Folder = Shell.BrowseForFolder(0, "请选择文件夹", 0); //起始目录为:桌面
  7. if (Folder != null) {
  8.     Folder = Folder.items();
  9.     Folder = Folder.item();
  10.     Folder = Folder.Path;
  11.     new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder);
  12. }
  13. close();
  14. </script>
复制代码


do echo;%%a修改为do copy 1.txt %%a\1.txt

评分

参与人数 1无忧币 +5 收起 理由
chishingchan + 5 有点深度!赞

查看全部评分

回复

使用道具 举报

7#
发表于 2019-9-13 09:26:42 | 只看该作者
准确获取需要用到 wmi 命令
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-3 04:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表