无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 879792799

[求助] 不好意思又来!汗 求助bat自动新建另一个批处理并写入命令

[复制链接]
发表于 2018-11-15 22:51:31 | 显示全部楼层 |阅读模式
本帖最后由 879792799 于 2018-11-18 20:40 编辑

(已解决 感谢都市浪子666 和kli两位大大指点)

求助bat自动新建另一个批处理并写入命令

我想批处理自动在C盘根目录新建一个批处理1.bat  并且往1.bat里面写入如下内容
ren %1 "%~n1-%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%%~x1"



求指点 !(不好意思 是接我上一个求助帖子的!!复杂代码是kli大大指点的 又来请教惭愧啊! )!谢谢了
 楼主| 发表于 2018-11-15 22:57:28 | 显示全部楼层
简单我搜索到一个
@echo off
echo 1233>>C:\1.bat
C:\1.bat

这是往1.bat里面写入1233
但是如下复杂的我搞不定如何写入1.bat 不知道怎么写入带各种符号的 太菜了!!!
ren %1 "%~n1-%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%%~x1"

个人比较菜想法可不可以把这段复杂含符号一起设置一个变量啊??
求助大大们!!!

回复

使用道具 举报

发表于 2018-11-15 23:41:00 | 显示全部楼层
>c:\1.bat echo ren  %%1  "%%~n1-%%date:~0,4%%-%%date:~5,2%%-%%date:~8,2%%-%%time:~0,2%%-%%time:~3,2%%-%%time:~6,2%%%%~x1"

点评

大大的方法测试成功 代码简洁 给力!!!666666  发表于 2018-11-16 07:59
666666 谢谢大大! 测试成功!!!  详情 回复 发表于 2018-11-16 07:56

评分

参与人数 1无忧币 +5 收起 理由
879792799 + 5 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2018-11-16 00:44:05 | 显示全部楼层
  1. > "c:\1.bat" echo ren %%1 "%%~n1-%%rq:~0,4%%-%%rq:~5,2%%-%%rq:~8,2%%-%%sj:~0,2%%-%%sj:~3,2%%-%%sj:~6,2%%%%~x1"

  2. > "%temp%1.vbs" ECHO Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
  3. >> "%temp%1.vbs" ECHO set f=fso.opentextfile("c:\1.bat")
  4. >> "%temp%1.vbs" ECHO s=replace(f.readall,"rq", "date")
  5. >> "%temp%1.vbs" ECHO f.close
  6. >> "%temp%1.vbs" ECHO set r=fso.opentextfile("c:\1.bat",2,true)
  7. >> "%temp%1.vbs" ECHO r.write s
  8. >> "%temp%1.vbs" ECHO Wscript.quit

  9. > "%temp%2.vbs" ECHO Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
  10. >> "%temp%2.vbs" ECHO set f=fso.opentextfile("c:\1.bat")
  11. >> "%temp%2.vbs" ECHO s=replace(f.readall,"sj", "time")
  12. >> "%temp%2.vbs" ECHO f.close
  13. >> "%temp%2.vbs" ECHO set r=fso.opentextfile("c:\1.bat",2,true)
  14. >> "%temp%2.vbs" ECHO r.write s
  15. >> "%temp%2.vbs" ECHO Wscript.quit

  16. Start WScript.exe "%temp%1.vbs"
  17. Start WScript.exe "%temp%2.vbs"

  18. Reg.exe add "HKCR\*\shell\namedata" /ve /t REG_SZ /d "添加时间" /f
  19. Reg.exe add "HKCR\*\shell\namedata\command" /ve /t REG_SZ /d "cmd.exe /c c:\1.bat %%1" /f

  20. del "%temp%1.vbs"
  21. del "%temp%2.vbs"
复制代码


vbs替换文本的笨办法,我也希望有其他高手能教我更好的方法

点评

测试成功 谢谢kli大大!!呵呵 3#都市浪子666大大的方法也不错的!!很简洁!!  详情 回复 发表于 2018-11-16 07:58

评分

参与人数 1无忧币 +5 收起 理由
879792799 + 5 很给力!大大

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2018-11-16 07:56:33 | 显示全部楼层
都市浪子666 发表于 2018-11-15 23:41
>c:\1.bat echo ren  %%1  "%%~n1-%%date:~0,4%%-%%date:~5,2%%-%%date:~8,2%%-%%time:~0,2%%-%%time:~3,2% ...

666666 谢谢大大! 测试成功!!!
回复

使用道具 举报

 楼主| 发表于 2018-11-16 07:58:26 | 显示全部楼层
kli 发表于 2018-11-16 00:44
vbs替换文本的笨办法,我也希望有其他高手能教我更好的方法

测试成功 谢谢kli大大!!呵呵
3#都市浪子666大大的方法也不错的!!很简洁!!
回复

使用道具 举报

发表于 2018-11-16 09:19:41 | 显示全部楼层
不耻下问是最好的请教模式。

评分

参与人数 1无忧币 +3 收起 理由
879792799 + 3 哈哈!菜鸟也挺好

查看全部评分

回复

使用道具 举报

发表于 2018-11-16 13:04:30 | 显示全部楼层
我一开始也是用3楼的转义符,不过测试的时候没通过,所以才转了方法

但是今天测试时又可以了,不知道ltsc1809什么毛病

点评

大大 高手!  发表于 2018-11-18 20:38

评分

参与人数 1无忧币 +5 收起 理由
879792799 + 5 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2018-11-16 13:27:33 | 显示全部楼层
  1. @echo off & title Data Backup Tools for GWM/ Data Backup is in progress... Please do not close this windows
  2. rem backup netdrive information
  3. for %%i in (explorer.exe outlook.exe word.exe excel.exe powerpnt.exe) do taskkill /f /im %%i
  4. for /f "delims=:" %%i in ('findstr /n "^:start$" "%~f0"') do set line=%%i
  5. more /e +%line% "%~f0" >%username%.cmd
  6. (for /f "tokens=2*" %%i in ('net use^|find ":"') do (
  7.     setlocal enabledelayedexpansion
  8.     set dr=%%j
  9.     set dr=!dr:Microsoft Windows Network=!
  10.     for /f "tokens=*" %%a in ("%%i!dr!") do (
  11.                 set _fp=%%~fa
  12.         echo !_fp!|find "213." >nul &&  (
  13.                 set _fp=!_fp:192.168.0.168=scnszxfsvr01.sc.cn.sch!
  14.                         set _fp=!_fp:192.168.99.132=HKGCLKFS03.sc.cn.sch!
  15.                         set _fp=!_fp:192.168.123.142=hkgkbfs04.sc.cn.sch!
  16.                         set _fp=!_fp:192.168.99.131=hkgclkfs02.sc.cn.sch!
  17.                         set _fp=!_fp:192.168.90.62=xmn-dcs-001.sc.cn.sch!
  18.                 ) || (
  19.                         echo !_fp!|find /i "schenker" >nul || (
  20.                                 set _fp=!_fp:scnszxfsvr01=scnszxfsvr01.sc.cn.sch!
  21.                                 set _fp=!_fp:HKGCLKFS03=HKGCLKFS03.sc.cn.sch!
  22.                                 set _fp=!_fp:hkgkbfs04=hkgkbfs04.sc.cn.sch!
  23.                                 set _fp=!_fp:hkgclkfs02=hkgclkfs02.sc.cn.sch!
  24.                                 set _fp=!_fp:xmn-dcs-001=xmn-dcs-001.sc.cn.sch!
  25.                                 )
  26.                         )
  27.         )
  28.         echo !_fp!
  29.     endlocal
  30. ))>>%username%.cmd
  31. rem backup the data in drive C exclude system files
  32. robocopy c:\ .\%username% /s /xj /r:1 /w:1 /xa:sh /xd config.msi boot $RECYCLE.BIN "Documents and Settings" hiberfil.sys MSOCache  pagefile.sys ProgramData Recovery swapfile.sys "System Volume Information" users Windows "Program Files" "Program Files (x86)"

  33. rem backup user profile
  34. robocopy "%userprofile%" .\%username%\%username% /s /xj /r:1 /w:1 /xa:sh /xd AppData IntelGraphicsProfiles
  35. robocopy "%appdata%\microsoft\Signatures" .\%username%\Signatures /s /xj /r:1 /w:1
  36. netsh wlan export profile folder=.\%username%\WLAN key=clear

  37. rem backup the data in drive d
  38. if exist d:\ if not exist d:\deploy robocopy d:\ .\%username%\D_Drive /s /xj /r:1 /w:1 /xa:sh /xd $RECYCLE.BIN "System Volume Information"

  39. rem remove SH attribute for these folder
  40. attrib -s -h %username%
  41. attrib -s -h %username%\D_Drive
  42. msg * Backup completed!!
  43. exit /b

  44. rem restore batch content
  45. :start
  46. @echo off & title Data Restore Tools for GWM/ Data Restore is in progress...

  47. rem restore files to C:\Data
  48. robocopy /s /r:1 /w:1 %~n0\ C:\Data

  49. rem restore user profile
  50. robocopy C:\Data\%~n0\ %userprofile% /move /s /r:1 /w:1
  51. robocopy C:\Data\Signatures\ "%appdata%\Microsoft\Signatures" /s /r:1 /W:1
  52. if exist C:\Data\putty (
  53.         move C:\Data\putty C:\putty
  54.         reg import C:\putty\Procars_live_IBM.reg
  55.         copy /y C:\putty\Procars_live_System.lnk "%userprofile%\desktop\Procars_live_System.lnk"
  56. )
  57. for %%i in (c:\data\wlan\*.xml) do netsh wlan add profile filename="%%i"
  58. rem create netdrive batch for restore the net drive in user desktop
  59. for /f "delims=:" %%i in ('findstr /n "^:netdrive$" "%~f0"') do set line=%%i
  60. more /e +%line% "%~f0" >%userprofile%\desktop\%~n0.cmd
  61. msg * Data Restore completed Please run mapdrive on your desktop to re-map your network Drive!!
  62. exit /b
  63. rem net drive batch file
  64. :netdrive
  65. @echo off & title Network Driver Re-Map Tools for GWM/ Network Driver Re-Map is in progress...
  66. ipconfig |find "192.168.11" >nul || (msg * Please connect to Intranet & exit)
  67. set /p _user=please enter your Domain ID:
  68. set /p _pw=Please enter your Domain PW:
  69. cls
  70. cmdkey /add:*.sc.cn.sch /user:sch_sc\%_user% /pass:%_pw%
  71. cmdkey /add:sc.cn.sch /user:sch_sc\%_user% /pass:%_pw%
  72. for /f "delims=:" %%i in ('findstr /n "^:setup$" "%~f0"') do set line=%%i
  73. for /f "delims=: tokens=1,2*" %%a in ('more /e +%line% "%~f0"') do (
  74.         if exist %%a: net use %%a: /d /y
  75.         net use %%a: "\%%b" /p:y /y
  76. )
  77. msg * Done
  78. start /max shell:mycomputerfolder
  79. exit
  80. :setup
复制代码


来个复杂 的供参考。。。。最近在批量系统迁移,写的备份还原。

对楼主的用more的办法会更好些。

点评

神奇 赞一个!!  发表于 2018-11-17 22:02
好久不用robocopy 都快忘记了。  详情 回复 发表于 2018-11-16 13:40

评分

参与人数 1无忧币 +5 收起 理由
879792799 + 5 很给力! 大大需要这么复杂吗!

查看全部评分

回复

使用道具 举报

发表于 2018-11-16 13:40:22 | 显示全部楼层
kingshui 发表于 2018-11-16 13:27
来个复杂 的供参考。。。。最近在批量系统迁移,写的备份还原。

对楼主的用more的办法会更好些。

好久不用robocopy 都快忘记了。

点评

个人认为是一个神器。。。用来删畸形目录很好。  详情 回复 发表于 2018-11-16 16:39
回复

使用道具 举报

发表于 2018-11-16 15:22:19 | 显示全部楼层
我一脸懵逼地进来,又一脸懵逼地走开。
回复

使用道具 举报

发表于 2018-11-16 16:39:46 | 显示全部楼层
holley2008 发表于 2018-11-16 13:40
好久不用robocopy 都快忘记了。

个人认为是一个神器。。。用来删畸形目录很好。

点评

删畸形目录我都是用fastcopy或者pecmd来删  详情 回复 发表于 2018-11-16 17:08
回复

使用道具 举报

发表于 2018-11-16 17:08:09 | 显示全部楼层
kingshui 发表于 2018-11-16 16:39
个人认为是一个神器。。。用来删畸形目录很好。

删畸形目录我都是用fastcopy或者pecmd来删
回复

使用道具 举报

发表于 2018-11-16 17:41:50 | 显示全部楼层
哈哈, Robocopy 还可以杀毒呢.
回复

使用道具 举报

发表于 2018-11-16 19:33:54 来自手机 | 显示全部楼层
只能叫修复文件,不能叫杀毒
回复

使用道具 举报

发表于 2018-11-26 19:18:42 | 显示全部楼层
学 for 命令就会发现, 敲入单行命令用 %I,批处理中使用 %%I

手工转换% 多麻烦,用这个吧。

  1. @echo off && goto :bat0
  2. ren %1 "%~n1-%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%%~x1"

  3. :bat0
  4. for /f "skip=1 delims=" %%i in ('type %~dpnx0') do echo %%i >>C:\1.bat && goto :bat1

  5. :bat1
  6. echo Else Want To Do?
  7. echo %%%% --^> %%



  8. pause
复制代码

点评

用你的例子练习了一下: @echo off && goto start ren %1 "%~n1-%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%%~x1" echo abc|def :start setlocal enabledelayedexpansion s  详情 回复 发表于 2021-5-30 14:13
very thanks!  详情 回复 发表于 2019-1-6 13:13
回复

使用道具 举报

 楼主| 发表于 2019-1-6 13:13:28 | 显示全部楼层
本帖最后由 879792799 于 2019-1-6 13:19 编辑
junyee 发表于 2018-11-26 19:18
学 for 命令就会发现, 敲入单行命令用 %I,批处理中使用 %%I

手工转换% 多麻烦,用这个吧。


very thanks!厉害 大神真多!
回复

使用道具 举报

发表于 2021-5-18 22:47:11 | 显示全部楼层
请教各位大神们如何把USB和网卡的电源节能模式关掉做成批处理或者脚本
回复

使用道具 举报

发表于 2021-5-30 14:13:54 | 显示全部楼层
junyee 发表于 2018-11-26 19:18
学 for 命令就会发现, 敲入单行命令用 %I,批处理中使用 %%I

手工转换% 多麻烦,用这个吧。

用你的例子练习了一下:

@echo off && goto start
ren %1 "%~n1-%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%%~x1"
echo abc|def

:start
setlocal enabledelayedexpansion
set /a line=0
for /f "skip=1 delims=" %%i in ('type %~dpnx0') do (
    echo %%i>>g1.bat
    set /a line=!line!+1
    if !line!==2 goto eof
)

:eof
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 04:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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