|
|
问题求教:
我使用promo ramdisk 创立了ramdisk内存盘转移了users文件,使用中新程序会在appdate文件夹中创立程序配置文件,固有转移配置文件夹并创立目录链接的需求。
自己捣鼓了个发送到的批处理,由于采用了for循环语句,在处理带有特殊符号如(),等符号时,批处理无法运行。代码已在管理员的帮助下更正,万分感谢!
更正:
1、1%--》~1%以去掉多余双引号
2、等式用双引号引来,如"patht=O:\Users\文档\AppData\%DirName%\%name%"
批处理如下所示:
- @echo off&setlocal enabledelayedexpansion
- set patha=%~1
- for /f %%a in ("%patha%") do (
- set "pathb=%%~dpa")
- for %%a in ("%pathb:~,-1%") do set DirName=%%~nxa
- if "%DirName%"=="" set DirName=0\%patha:~,1%
- for %%a in ("%patha%") do set name=%%~nxa
- set "patht=O:\Users\文档\AppData\%DirName%\%name%"
- set "patht1=O:\Users\文档\AppData\%DirName%\"
- md "O:\Users\文档\AppData\%DirName%"
- if not exist "O:\Users\文档\AppData\%DirName%" md "O:\Users\文档\AppData\%DirName%"
- for %%z In ("%patha%") do if "%%~az" geq "d" (echo d|xcopy /s/e/h/y "%patha%\*" "%patht%\"
- rd /s /q "%patha%"
- mklink /j "%patha%" "%patht%") else If "%%~az" geq "-" (echo f|xcopy "%patha%" "%patht1%" /h /y
- del /a /f /s "%patha%"
- mklink "%patha%" "%patht%")
复制代码 |
|