Board logo

标题: [文件操作] 【已解决】批处理怎样返回上级目录打开下个文件夹? [打印本页]

作者: 朱科技    时间: 2021-5-22 12:49     标题: 【已解决】批处理怎样返回上级目录打开下个文件夹?

本帖最后由 朱科技 于 2022-12-28 10:42 编辑

返回上级目录打开下个文件夹:我的目的就是不想重复点击返回按钮在打开下个文件夹

判断自己在一级目录的话,把自己复制到当前目录中的每个文件夹中,在二组文件夹的话关闭当前窗口并返回到一级文件夹中打开下一个文件夹(我的目的就是不想重复点击返回按钮在打开下个文件夹)
一级文件夹:张三(这个文件夹中还有100个二级文件夹)
作者: Gin_Q    时间: 2021-5-22 13:19

  1. @echo off
  2. set source="test.lua"
  3. echo %source%
  4. for /f %%d in ('dir /ad /n /b') do copy "%source%" "%cd%\%%d"
  5. pause
复制代码

作者: 1152    时间: 2021-5-22 13:26

你可以打开两个文件夹
作者: 1152    时间: 2021-5-22 13:36

就是打开两个窗口
作者: 朱科技    时间: 2021-5-22 15:09

回复 5# xp3000


    到是把自己复制到每个文件夹里面了,但是不会打开下一个文件夹
作者: 朱科技    时间: 2021-5-22 15:10

回复 2# Gin_Q


    系统找不到文件
作者: 1152    时间: 2021-5-22 17:28

回复 8# xp3000


    popd是什么?
作者: 朱科技    时间: 2021-5-22 20:20     标题: 批处理:我的目的就是不想重复点击返回按钮在打开下个文件夹

批处:判断自己在一级目录的话,把自己复制到当前目录中的每个文件夹中,在二组文件夹的话关闭当前窗口并返回到一级文件夹中打开下一个文件夹(我的目的就是不想重复点击返回按钮在打开下个文件夹)
一级文件夹:张三(这个文件夹中还有100个二级文件夹)
作者: 朱科技    时间: 2021-5-22 20:38

回复 5# xp3000


    判断自己在一级目录的话,把自己复制到当前目录中的每个文件夹中,在二组文件夹的话关闭当前窗口并返回到一级文件夹中打开下一个文件夹(我的目的就是不想重复点击返回按钮在打开下个文件夹)
一级文件夹:张三(这个文件夹中还有100个二级文件夹)
作者: 朱科技    时间: 2021-5-22 22:22

回复 13# xp3000


    好像返回不了上级目录,
作者: newswan    时间: 2021-5-23 01:03

听不懂,不明白。
“判断自己在一级目录的话”,自己是谁?
作者: 朱科技    时间: 2021-5-23 15:47     标题: 当前目录中100个文件夹,文件名都是以1,2,3,4,5 排序的

当前目录中100个文件夹,文件名都是以1,2,3,4,5 排序的
把自己复制到当前目录中的每个文件夹内,并且自动更改最后一个路径(如果复制到文件1中那么路径中变量=2,如果复制到文件2中那么路径变量=3)

复制到文件1中最后的路径结果是:start "" "C:\Users\Administrator\Desktop\0523\2"
复制到文件2中最后的路径结果是:start "" "C:\Users\Administrator\Desktop\0523\3"

不知道我这么讲有没有理解
作者: qixiaobin0715    时间: 2021-5-23 16:21

不是别人有没有理解,关键是你自己讲没讲清楚。
最好说明自己到底要达到什么目的,可能大家就好理解点。
我想了半天,觉得你所谓的自己是指“批处理文件”本身吗?
作者: 朱科技    时间: 2021-5-23 16:39

回复 2# qixiaobin0715


    张三文件夹内有100个文件夹(文件名以1,2,3,4,5这样排列),我想在把这条命令复制到这100个文件夹内的同时把这条命令的最后一个路径改掉(复制到文件1中BAT命令的最后的路径结果是:start "" "C:\Users\Administrator\Desktop\0523\2")
作者: 朱科技    时间: 2021-5-23 16:42

回复 2# qixiaobin0715


    在简单点讲就是
复制到文件1中:bat文件中的代码就是:start "" "C:\Users\Administrator\Desktop\0523\2"
复制到文件2中:bat文件中的代码就是:start "" "C:\Users\Administrator\Desktop\0523\3"
作者: qixiaobin0715    时间: 2021-5-23 17:23

回复 4# 朱科技
你这样做的目的是什么呢?可能有更好的方法来达到你的目的。
作者: 朱科技    时间: 2021-5-23 17:24

解决一下,啦啦啦
作者: qixiaobin0715    时间: 2021-5-23 17:40

我想你没明白我的意思,你是想随意进入同一目录中子文件夹对吧,当你打开文件夹时,左侧就有目录树,点击目录树中的你的目标文件夹就能进入。
作者: 朱科技    时间: 2021-5-23 17:48

回复 7# qixiaobin0715

自动进入下一个文件夹
作者: xp3000    时间: 2021-5-23 18:04

他发贴说自己,就是他自己的想法,你得猜
作者: 朱科技    时间: 2021-5-23 18:07

回复 9# xp3000


    自动跳转打开下一个文件夹,这样就不能来回点击返回在打开下个文件夹了
作者: smss    时间: 2021-5-23 18:13

从哪复制到哪 判断依据是什么
作者: 朱科技    时间: 2021-5-23 18:42

回复 11# smss

桌面上有人文件夹   叫张三
张三里面有100个文件夹(文件夹以数字命令好了,1,2,3……)

把自BAT自己复制到100个文件夹名
打开文件名1,双击BAT自动跳转打开文件名2
打开文件名2,双声BAT自动跳转打开文件名3
作者: 朱科技    时间: 2021-5-23 18:45

回复 12# 朱科技


    我想把BAT命令代码的路径中最后一个数字加1,这样打开文件10,双击就会跳转打开下一个文件名为11文件夹了
作者: smss    时间: 2021-5-23 19:05

本帖最后由 smss 于 2021-5-23 19:23 编辑

这样吗
  1. @Echo off&SetLocal EnableDelayedExpansion
  2. for /f "delims=" %%i in ("%cd%")do set n=%%~ni&set q=%%~dpi
  3. set/a m=%n%+1&start "" "!q!!m!"&move %0 "!q!!m!"
  4. pause
复制代码

作者: 朱科技    时间: 2021-5-23 19:13

回复 14# smss


    怎么闪一下什么都没有了,把自己删除了
作者: smss    时间: 2021-5-23 19:24

回复 15# 朱科技 没有删除是把自我移动到下个文件中了
作者: 朱科技    时间: 2021-5-23 19:27

回复 14# smss


    是要的这个结果,能把它复制到每个文件夹中吗
作者: xp3000    时间: 2021-5-23 20:03

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "str=C:\Users\Administrator\Desktop\0523\"
  4. for /f "tokens=1,* delims=:" %%a in ('dir /a:d /b *^|findstr /n .') do (
  5. set m=%%a&set /a n=!m!+1
  6. echo start "" "!str!!n!">"!m!\打开下个文件夹.bat"
  7. )
  8. echo start "" "!str!1">"!m!\打开下个文件夹.bat"
  9. pause
复制代码

作者: 朱科技    时间: 2021-5-23 20:16

回复 34# xp3000


    你的没啥反映,就出现了CMD窗口按任意建继续
作者: xp3000    时间: 2021-5-23 20:30

你不是说1、2、3、4、5、……文件夹?
给的目录C:\Users\Administrator\Desktop\0523\
放在C:\Users\Administrator\Desktop\0523\执行,
要么第3行下写入cd /d !str!
作者: newswan    时间: 2021-5-23 23:27

  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set root=C:\Users\Administrator\Desktop\0523\
  4. pushd "%root%"
  5. for /f "usebackq delims=" %%a in (`dir /b /ad | %gnupath%\sort -n`) do (
  6.     del next.bat
  7.     if defined pre (
  8.         echo start "" "%root%\%%a"
  9.     )> !pre!\next.bat
  10.     set pre=%%a
  11. )
  12. popd
复制代码
用的 gnu 命令 sort 排序 ,处理 1 10 100 这样的比较好




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2