Board logo

标题: 生成指定内容的文本 [打印本页]

作者: shaokui123     时间: 2008-2-24 00:48    标题: 生成指定内容的文本

想做一个批处理在女朋友的电脑上运行,每次开机的时候自动在桌面生成一个文本,里面的内容自己指定,如我爱你,***
d盘是女朋友装的一些小游戏,在每个文件夹包括里面的文件夹都加上我的名字,也就是把文件夹重新命名一下
作者: shaokui123     时间: 2008-2-24 01:27
第一个问题解决了一半
echo 我爱你,***>>"%userprofile%\桌面\老婆我爱你.txt
但是不能每次开机自动运行
第二个问题也是解决了一半
作者: shaokui123     时间: 2008-2-24 01:39
for /d %%i in ("d:/game\*") do (call :loop "%%~dpfi")

:loop
   for %%m in (%~1) do (
           ren "%%m" "%%~nm.老公***"
           for /d %%a in ("%%~m.老公***\*") do call :loop "%%~dpfa"
)

问题:
文件夹有括号(好像特殊字符)不好用
作者: shaokui123     时间: 2008-2-24 01:42
以上两点写成一个处理,每次开机的时候自动运行,启动的位置最好多一点,防止误删
最好在d:/game下新建文件夹后马上加上我的名字,可以吗?
作者: shaokui123     时间: 2008-2-24 01:46
文件名中有空格也不行的
作者: dy2003310     时间: 2008-2-24 02:09
第一个问题的后一半 (利用注册表什么的)
http://www.cn-dos.net/forum/view ... A%E8%BF%90%E8%A1%8C

------
作者: shaokui123     时间: 2008-2-24 02:23
谢谢你,继续关注中
作者: suntb     时间: 2008-2-24 10:59
文件放入启动文件夹中就可以实现开机运行,为保险可以自己创建一个文件夹存放并在注册表的启动项中导入此文件路径
@echo off
set file=love.txt

::创建文件
if not exist %file% echo 我爱你,XXX>>"%userprofile%\桌面\%file%"
::启动方法一
copy /y "%userprofile%\桌面\%file%" "%userprofile%\\「开始」菜单\程序\启动\%file%">nul
::启动方法二
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "lovetxt" /d "%userprofile%\桌面\%file%" /f>nul
[ Last edited by suntb on 2008-2-24 at 11:01 AM ]
作者: suntb     时间: 2008-2-24 11:00
如果需要隐藏文件的话,可用attrib +s +h对其进行属性设置
作者: shaokui123     时间: 2008-2-24 16:40
第二个问题怎么办啊?
作者: shaokui123     时间: 2008-2-24 16:42
『第 3 楼』:  

for /d %%i in ("d:/game\*") do (call :loop "%%~dpfi")

:loop
   for %%m in (%~1) do (
           ren "%%m" "%%~nm.老公***"
           for /d %%a in ("%%~m.老公***\*") do call :loop "%%~dpfa"
)

问题:
文件夹有括号(好像特殊字符)不好用

这个能解决吗?
作者: shaokui123     时间: 2008-2-24 20:35
『第 11 楼』:  

『第 3 楼』:  

for /d %%i in ("d:/game\*") do (call :loop "%%~dpfi")

:loop
   for %%m in (%~1) do (
           ren "%%m" "%%~nm.老公***"
           for /d %%a in ("%%~m.老公***\*") do call :loop "%%~dpfa"
)

问题:
文件夹有括号(好像特殊字符)不好用

这个能解决吗?
今天在网吧里不成功啊,是不是有管理软件的原因啊?
作者: abcd     时间: 2008-2-24 20:45
游戏目录里面的目录或文件夹不能随便改名吧??

这样游戏还能正常运行?
作者: bjsh     时间: 2008-2-24 22:25
安装文件的目录 不要轻易改名; 极易造成 程序无法运行;
作者: shaokui123     时间: 2008-2-25 09:41


  Quote:
Originally posted by abcd at 2008-2-24 08:45 PM:
游戏目录里面的目录或文件夹不能随便改名吧??

这样游戏还能正常运行?

里面的全是我给她下的绿色版的免安装小游戏
作者: everest79     时间: 2008-2-25 12:34
打开画图,将图像属性设为1024*768,然后在左上方打上给你老婆讲的话,字体放大一点,保存为cd.bmp到C:盘

然后随便点开一个文件夹
新建一个desktop.ini,内容如下,要是不显示请在文件夹选项中将在文件夹中显示常见任务先打开,图像显示后调整好,在那个文件夹上点右键,属性,自定义,选上那个将些模版应用于所有文件夹,然后应用下,嘿嘿
[.ShellClassInfo]
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
Attributes=1
IconArea_Image=C:\cd.bmp
作者: shaokui123     时间: 2008-2-25 13:20
高手啊,没看明白
作者: shaokui123     时间: 2008-2-25 20:04
很想把这个问题完美的解决啊
作者: abcd     时间: 2008-2-25 20:09

@echo off
for /f "tokens=*" %%i in ('dir /ad /b /s d:\^|sort /r') do (
  move "%%~dpnxi" "%%~dpnxi.老公张三"
)
pause
是这样吗???

不过,即使是绿色软件,与软件同级或者下级目录应该是不可以改动的

[ Last edited by abcd on 2008-2-25 at 08:10 PM ]
作者: shaokui123     时间: 2008-2-25 21:59


  Quote:
Originally posted by abcd at 2008-2-25 08:09 PM:
@echo off
for /f "tokens=*" %%i in ('dir /ad /b /s d:\^|sort /r') do (
  move "%%~dpnxi" "%%~dpnxi.老公张三"
)
pause
是这样吗???

不 ...

基本上都是单文件的小游戏
作者: shaokui123     时间: 2008-2-25 22:07


  Quote:
Originally posted by abcd at 2008-2-25 08:09 PM:
@echo off
for /f "tokens=*" %%i in ('dir /ad /b /s d:\^|sort /r') do (
  move "%%~dpnxi" "%%~dpnxi.老公张三"
)
pause
是这样吗???

不 ...

经过实验,基本可以,谢谢高手,不过能把运行窗口隐藏吗?因为一运行的时候窗口都显示了出来,而且很慢
作者: shaokui123     时间: 2008-2-25 22:21
反向操作怎么编写啊
作者: abcd     时间: 2008-2-25 22:37
P处理隐藏运行,自己搜索一下论坛。

反向操作,就需要用到字符串截取了

搜索一下吧


因为需要从目录的最里层向最外层修改


而且用的是dir再sort,再for,如果文件夹比较多,速度是不理想

[ Last edited by abcd on 2008-2-25 at 10:39 PM ]
作者: shaokui123     时间: 2008-2-25 22:49
谢谢高手,有些问题可能我提得有些见笑
p处理隐藏的资料我也搜索了一些,但是我对p不怎么熟悉,不敢轻易实验,我可不可以把相关的代码像搭积木一样搭起来然后p处理一条条的执行呢?

反向操作就是我把每个文件夹都加上了老公张三后我再把每个文件夹都减去老公张三变成原来的文件夹名字,不要见笑,可能没有什么实际意义,但是我想从技术的角度来实现它
作者: shaokui123     时间: 2008-2-25 22:50
感觉abcd等高手都很亲切,谢谢大家
作者: abcd     时间: 2008-2-25 22:59
http://www.cn-dos.net/forum/view ... mp;page=5#pid253193

试试这个帖子的63和66楼的方法吧,当然P运行时还是会显示那么一两秒的,然后就隐藏运行了。

如果楼主有虚拟机的话,就在虚拟机中测试吧,安全

如果没有,就新建一文件夹,在其下测试,一般安全,当然测试的内容要在改目录下,不要涉及到其他目录


反向操作就是从取的路径中截去末尾4位,利用set截取。

也是从最里层到最外层的顺序修改。

[ Last edited by abcd on 2008-2-25 at 11:00 PM ]
作者: shaokui123     时间: 2008-2-25 23:24
谢谢您,反向操作最好能给个示例,因为我实在太菜了
作者: abcd     时间: 2008-2-25 23:30

@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /ad /b /s d:\^|sort /r') do (
  set "nm=%%~dpnxi"
  move "%%~dpnxi" "!nm:~0,-4!"
)
pause
类似这样吧
作者: shaokui123     时间: 2008-2-25 23:39
测试了一下,不好用啊
作者: shaokui123     时间: 2008-2-25 23:43
老公张三去除不掉
作者: abcd     时间: 2008-2-25 23:48
啊,我测试是可以的。

要不楼主根据自己要求修改一下吧,原理一样的
作者: shaokui123     时间: 2008-2-25 23:50
高手,这是另外一个批处理,和你那个比较有什么区别?@echo off&setlocal enabledelayedexpansion
set /p name=输入名字
for /f "delims=" %%a in ('dir /s d: /ad /b ^| sort /r') do (
ren "%%a" "%%~na!name!"
)
copy %0 "%userprofile%\「开始」菜单\程序\启动" /y >nul
pause
作者: shaokui123     时间: 2008-2-27 10:59
高手,这是另外一个批处理,和你那个比较有什么区别?@echo off&setlocal enabledelayedexpansion
set /p name=输入名字
for /f "delims=" %%a in ('dir /s d: /ad /b ^| sort /r') do (
ren "%%a" "%%~na!name!"
)
copy %0 "%userprofile%\「开始」菜单\程序\启动" /y >nul
pause
作者: abcd     时间: 2008-2-27 12:00
这个不是恢复啊?!
作者: shaokui123     时间: 2008-2-27 12:15
这个是按照我帖子的要求制作的
作者: wangchixiao     时间: 2008-3-26 18:30
我想了一个办法,你可以参照USB当作启动条件的帖子的办法,就是在组策略里面,加一个开机登陆脚本,然后在脚本里面添加一个批处理,这个应该简单了吧,可以试试看。
作者: AhKang     时间: 2008-3-31 06:12
如果没有指定快捷方式图标的话,对文件夹重命名也无大碍,毕竟是绿色免安装游戏呢。如果已经生成了快捷方式,则需要全部重新指定路径了。
作者: shaokui123     时间: 2009-6-21 05:00
继续求教中