shell实现的windows回收站功能的脚本

合集下载

使用命令行打开回收站的方法

使用命令行打开回收站的方法

使用命令行打开回收站的方法1.引言回收站是Wi nd ow s操作系统中的一个重要功能,它允许用户暂时存放已删除的文件和文件夹,以便在需要时进行恢复。

通常情况下,我们可以通过双击桌面上的回收站图标或者在资源管理器中找到它来打开回收站。

然而,你可能会遇到一些特殊情况,比如回收站图标在桌面上消失了,或者你不想通过鼠标来操作,而是希望能够使用命令行来打开回收站。

本文将介绍几种使用命令行打开回收站的方法,让你在使用Wi nd ow s时更加高效。

2.方法一:使用explo rer命令首先,我们可以使用命令行工具中的`exp l or er`命令来打开回收站。

打开命令提示符或者P ow er Sh el l,并输入以下命令:```e x pl or er.e xe sh ell:Re cy cl eB in Fo lde r```执行该命令后,系统将会打开回收站的窗口,你可以在其中找到已删除的文件和文件夹。

这种方法适用于W ind o ws7及以上版本。

3.方法二:使用star t命令除了`e xp lo re r`命令,我们还可以使用`s ta rt`命令来打开回收站。

同样,在命令提示符或者Po we rS he ll中输入以下命令:```s t ar ts he ll:R ec ycl e Bi nF ol de r```执行该命令后,系统将会打开回收站的窗口,你可以进行相关操作。

这种方法同样适用于W in do ws7及以上版本。

4.方法三:使用自定义命令如果你希望使用一个自定义的命令来打开回收站,可以按照以下步骤进行操作:-打开你偏好的文本编辑器,比如记事本。

-在文本编辑器中,输入以下内容:```@e ch oo ffs t ar ts he ll:R ec ycl e Bi nF ol de re x it```-保存该文件,并将其命名为`o pe n_re cy c le_b in.b at`(扩展名为.ba t)。

批处理脚本自动清理Windows回收站

批处理脚本自动清理Windows回收站

批处理脚本自动清理Windows回收站Windows操作系统中的回收站是一个非常有用的功能,它可以帮助我们还原已删除的文件。

然而,回收站中的文件会占用磁盘空间,尤其当我们删除大量文件时,回收站的大小会不断增加。

为了释放磁盘空间,我们可以定期清理回收站。

本文将介绍如何使用批处理脚本自动清理Windows回收站。

回收站的路径首先,我们需要了解回收站在Windows中的存储路径。

回收站的文件夹位于每个驱动器的根目录下,其路径为:\ $Recycle.Bin。

其中,$代表驱动器的名称(如C、D、E等)。

在一个驱动器上可以有多个回收站文件夹,每个文件夹对应一个用户的回收站。

编写批处理脚本接下来,我们将编写一个批处理脚本来实现自动清理回收站的功能。

首先,我们需要打开一个文本编辑器,比如记事本,然后将以下命令粘贴到文本编辑器中:@echo offrd /s /q C:\$Recycle.Binrd /s /q D:\$Recycle.Binrd /s /q E:\$Recycle.Bin在这个脚本中,我们使用了rd命令来删除文件夹。

参数/s表示删除所有子文件夹和文件,/q表示静默删除,不询问确认。

这样,批处理脚本将遍历C、D、E等盘符下的$Recycle.Bin文件夹,并删除其中的所有内容。

保存并运行批处理脚本完成脚本的编写后,我们将其保存为批处理文件。

点击文件菜单,选择"另存为",将文件类型选择为"所有文件",然后给文件命名为"clear_recycle_bin.bat"(或其他你喜欢的名称)。

保存后,双击批处理文件即可运行。

脚本会自动清理每个驱动器下的回收站,释放磁盘空间。

设置定期执行为了实现自动清理回收站的效果,我们可以设置定期执行批处理脚本。

可以通过两种方法来实现。

方法一:使用Windows任务计划程序1. 在开始菜单中搜索"任务计划程序"并打开。

Windows 7 Shell命令(加了注释)

Windows 7 Shell命令(加了注释)

Windows 7 Shel命令对于熟悉了命令行的人而言,用键盘调用程序往往比鼠标更快更省力,比如您可以用“Shell”命令调用一切可以用资源管理器打开的项目,甚至是一次完成以前需要很多步骤才能完成的任务。

shell:Libraries 打开当前用户库shell:MusicLibrary 打开音乐库shell:VideosLibrary 打开视频库shell:OtherUsersFoldershell:Device Metadata Store 打开C:\ProgramData\Microsoft\Windows\DeviceMetadataStoreshell:PublicSuggestedLocationsshell:DocumentsLibrary打开文档库shell:User Pinned打开C:\Users\***\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinnedshell:UsersLibrariesFolder打开当前用户库目录(貌似和shell:Libraries功能相同)shell:PicturesLibrary打开图片库shell:ImplicitAppShortcuts打开C:\Users\***\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcutsshell:Ringtones打开C:\Users\***\AppData\Local\Microsoft\Windows\Ringtonesshell:CommonRingtones打开C:\ProgramData\Microsoft\Windows\Ringtonesshell:Common Programs打开开始菜单中的所有程序shell:GameTasks打开C:\Users\***\AppData\Local\Microsoft\Windows\GameExplorershell:UserProfiles打开C:\Users用户目录shell:MyComputerFolder打开计算机(我的电脑)shell:SyncSetupFolder打开控制面板\所有控制面板项\同步中心\同步设置shell:DpapiKeys打开C:\Users\***\AppData\Roaming\Microsoft\Protect 目录shell:Favorites打开当前用户收藏夹shell:My Video打开我的视频shell:SearchHomeFolder打开搜索和查找shell:System转到C:\Windows\System32 目录shell:CommonVideo转到C:\Users\Public\Videos (公用视频)shell:SyncResultsFolder转到控制面板\所有控制面板项\同步中心\同步结果shell:Cookies转到C:\Users\***\AppData\Roaming\Microsoft\Windows\Cookies目录shell:CommonMusic转到公用音乐shell:My Pictures转到我的图片shell:Cache转到IE临时文件目录。

windows shell编程指南与实例

windows shell编程指南与实例

windows shell编程指南与实例Windows Shell是Windows操作系统中的一个重要组件,它可以让用户通过命令行界面与操作系统进行交互。

本文将为读者介绍Windows Shell编程的基本知识和实例,帮助读者更好地理解和使用Windows Shell。

## 一、Windows Shell简介Windows Shell是Windows操作系统的用户界面,它提供了一种与操作系统进行交互的方式。

在Windows系统中,用户可以通过Shell来执行命令、管理文件和目录、配置系统等操作。

Windows Shell有多种版本,包括命令提示符(Command Prompt)和Windows PowerShell等。

## 二、Windows Shell编程基础### 1. 命令提示符命令提示符是Windows Shell的一种基本形式,它提供了一种简单的命令行界面,用户可以直接在命令提示符窗口中输入命令并执行。

下面是一些常用的命令提示符命令:- `dir`:显示当前目录下的文件和子目录。

- `cd`:切换当前目录。

- `mkdir`:创建新目录。

- `del`:删除文件。

- `copy`:复制文件。

### 2. Windows PowerShellWindows PowerShell是Windows操作系统的高级命令行工具,它提供了更强大和灵活的功能。

与命令提示符不同,Windows PowerShell支持使用脚本语言编写批处理脚本,可以实现更复杂的操作。

下面是一个简单的Windows PowerShell脚本示例:```$files = Get-ChildItem -Path "C:\Folder" -Recurse -File foreach ($file in $files) {if ($file.Length -gt 1024) {Write-Host "$($) is larger than 1KB."}}```上述脚本使用`Get-ChildItem`命令获取指定目录下的所有文件,并遍历每个文件,如果文件大小大于1KB,则输出文件名。

shell脚本作业(答案)

shell脚本作业(答案)

11月25日作业1.将文件名改为小写字母
2. 显示指定文件的访问、修改、修改内容日期
3. 将一个文本文件空格删除
4. 比较两个目录,如果第一个目录的文件在第二个目录中存在则删除
5. 拥有回收站功能的删除脚本
输入脚本文件空格文件,选择删除还是还原,实现删除和还原
输入脚本文件空格文件,选择删除还是还原,实现删除和还原
6. 遍历目录机器下子目录
11月26日作业1、有一个文件z109.txt,显示第3~5行的内容。

方法1:
方法2:
2、判断文件z109是否存在,存在就删除掉,不存在就创建并为它创建一个副本。

3、查看用户信息。

=================================
课外练习:5. 拥有回收站功能的删除脚本(多功能版)
先显示回收站有4大功能:1、删除2、还原3、查看回收站4、清空回收站
根据选项,进行相应的操作。

使用命令行打开回收站的方法

使用命令行打开回收站的方法

使用命令行打开回收站的方法要使用命令行打开回收站,需要先了解回收站是如何在计算机中工作的。

在Windows操作系统中,回收站是用来存放已删除文件和文件夹的临时存储区域。

当我们删除文件或文件夹时,它们并没有立即从硬盘上被永久删除,而是被移到了回收站中。

因此,通过打开回收站,我们可以恢复误删除的文件或文件夹。

打开回收站的最简单方法是直接双击桌面上的回收站图标。

不过,既然是要使用命令行来打开回收站,我们就需要使用一些特定的命令来完成这个任务。

在Windows中,我们可以使用以下两个命令来打开回收站:1. 使用explorer命令- 按下快捷键Win + R 来打开运行窗口。

- 在运行窗口中输入cmd并按下回车键,打开命令提示符窗口。

-在命令提示符窗口中输入以下命令并按下回车键:```explorer shell:RecycleBinFolder```这个命令将使用Windows资源管理器来打开回收站。

2. 使用start命令- 按下快捷键Win + R 来打开运行窗口。

- 在运行窗口中输入cmd并按下回车键,打开命令提示符窗口。

-在命令提示符窗口中输入以下命令并按下回车键:```start recyclebin:```这个命令将使用默认的程序来打开回收站。

这两种方法都会打开回收站,并显示在资源管理器窗口中。

从这里,您可以浏览回收站中存储的已删除文件和文件夹,并且如果需要的话,可以恢复它们。

1. 按下快捷键Win + R来打开运行窗口。

2. 在运行窗口中输入cmd并按下回车键,打开命令提示符窗口。

3.在命令提示符窗口中输入以下命令并按下回车键:```recycle```这将启动"recycle.exe"程序并打开回收站。

在使用命令行打开回收站时,您还可以使用其他选项和参数来自定义命令的行为。

例如,您可以使用以下选项来打开回收站并直接选择指定的文件或文件夹:```explorer shell:RecycleBinFolder\<文件或文件夹的名称>```这将在打开回收站后,自动选择指定的文件或文件夹,以便您可以更方便地查看它们。

Shell脚本中的内存管理和垃圾回收技巧

Shell脚本中的内存管理和垃圾回收技巧

Shell脚本中的内存管理和垃圾回收技巧Shell脚本在自动化任务中扮演着至关重要的角色,然而,对于一些复杂的任务,特别是那些需要处理大量数据的任务,内存管理和垃圾回收变得尤为重要。

本文将介绍一些Shell脚本中的内存管理和垃圾回收技巧,帮助提高脚本的性能和稳定性。

1. 使用合适的变量类型在Shell脚本中,变量的类型很灵活,但也容易导致内存占用过高。

因此,为了更好地管理内存,我们应该根据实际需要选择合适的变量类型。

对于只需要存储整数的变量,可以使用整型变量而不是字符串变量。

因为字符串变量会占用更多的内存空间。

例如,对于一个需要计算数字之和的Shell脚本,可以使用整型变量来存储数字,而不是字符串变量:```bash#!/bin/bashnum1=10num2=20sum=$((num1 + num2))echo "Sum is: $sum"```2. 显式删除不需要的变量在Shell脚本中,一旦不再需要某个变量,应该明确地删除它,以释放内存空间。

可以使用`unset`命令来删除变量,例如:```bash#!/bin/bashvar1="Hello"var2="World"# 使用变量...unset var1unset var2```在上面的例子中,当`var1`和`var2`的值不再需要时,通过`unset`命令将它们删除,从而释放内存空间。

3. 避免使用过多的全局变量全局变量在Shell脚本中是可见的,它们可以在脚本的任何位置被访问。

然而,过多的全局变量会导致内存占用过高。

为了更好地管理内存,我们应该尽量避免过多的全局变量,可以将变量定义在脚本的局部作用域中,只在需要的时候定义和使用。

例如,下面的脚本只在函数内部定义和使用变量`name`,避免了使用全局变量:```bash#!/bin/bashfunction say_hello {local name="Alice"echo "Hello, $name!"}say_hello```4. 及时释放资源在Shell脚本中,我们可能会打开文件、创建临时文件或者创建其他资源。

shellwindows对象方法

shellwindows对象方法

shellwindows对象方法ShellWindows对象是Windows脚本宿主提供的一个COM对象,用于与系统中正在运行的Shell窗口交互。

Shell窗口是指Windows资源管理器打开的各个窗口,包括文件夹窗口、控制面板窗口、Internet浏览器窗口等。

ShellWindows对象具有以下方法:1. Count方法:- 作用:获取当前系统中打开的Shell窗口的数量。

- 语法:`Count(`- 返回值:整数,表示Shell窗口的数量。

2. Item方法:- 作用:获取ShellWindows对象集合中指定索引位置的ShellWindow对象。

- 语法:`Item(index)`- 参数:index为整数,表示ShellWindow对象在ShellWindows集合中的索引位置。

- 返回值:ShellWindow对象。

3. FindWindow方法:- 作用:在ShellWindows对象集合中查找具有指定属性值的ShellWindow对象。

- 语法:`FindWindow(vararg, vararg, vararg, vararg)`- 参数:用于指定要查找的ShellWindow对象的属性值。

- 返回值:ShellWindow对象。

4. Register方法:- 作用:向ShellWindows对象集合中添加一个ShellWindow对象。

- 语法:`Register(pid, hwnd, swc, vararg, vararg)`- 参数:分别指定ShellWindow对象的进程ID、窗口句柄、窗口类名、窗口标题等属性值。

- 返回值:整数,表示新添加的ShellWindow对象在ShellWindows集合中的索引位置。

5. Unregister方法:- 作用:从ShellWindows对象集合中移除指定的ShellWindow对象。

- 语法:`Unregister(index)`- 参数:index为整数,表示要移除的ShellWindow对象在ShellWindows集合中的索引位置。

shell废锅流程

shell废锅流程

shell废锅流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 进料准备确保废锅系统处于正常运行状态,检查设备、管道和阀门的完整性。

shellwindows对象方法

shellwindows对象方法

shellwindows对象方法ShellWindows 是 Windows 系统提供的一个对象,用于与 Windows资源管理器(File E某plorer)进行交互。

它提供了一组方法和属性,可以用于控制资源管理器的行为,并获取有关打开的窗口和文件夹的信息。

在本篇文章中,将详细介绍 ShellWindows 对象的各个方法。

1. Count 方法:该方法返回当前打开的资源管理器窗口的数量。

```pythonwindows_count = shell.Windows.Count。

```2. Item 方法:该方法返回指定索引位置的资源管理器窗口对象。

```pythonwindow = shell.Windows.Item(0)```3. FindWindow 方法:该方法返回指定文件夹路径或窗口标题的资源管理器窗口对象。

可以通过指定的路径或标题来查找相应的窗口。

```pythonwindow = shell.Windows.FindWindow("C:\\", None)```4. E某plore 方法:该方法打开一个新的资源管理器窗口,并指定要显示的文件夹路径。

```pythonnew_window = shell.Windows.E某plore("C:\\")```5. Open 方法:该方法打开一个新的资源管理器窗口,并指定要打开的文件路径。

```pythonnew_window = shell.Windows.Open("C:\\test.t某t")```6. ShowBrowserBar 方法:该方法显示指定的资源管理器窗口的特定工具栏。

```pythonwindow = shell.Windows.Item(0)window.ShowBrowserBar("{EFA24E62-B078-11D0-89E4-00C04FC9E26E}", True)```7. Register 方法:该方法在资源管理器窗口中注册一个后台应用程序。

shellwindows对象方法

shellwindows对象方法

shellwindows对象方法ShellWindows是Windows操作系统中的一个COM对象,它提供了一组方法和属性,用于管理和操作当前打开的所有资源管理器窗口。

下面是ShellWindows对象的一些常见方法和属性:方法:1. Item(index):根据索引获取ShellWindow对象。

索引从0开始,表示在当前会话中打开的资源管理器窗口的顺序。

2. FindWindowSW([pvarloc, [pvarhwnd, [swClass, [swWindow]]]]):根据指定的文件夹路径或窗口句柄来查找和激活资源管理器窗口。

- pvarloc: 要查找的文件夹路径。

- pvarhwnd: 要查找的窗口句柄。

- swClass: 资源管理器窗口的类名。

- swWindow: 窗口状态标志,如SW_SHOW、SW_HIDE等。

3. Open(strPath, [strDir, [strArgs, [strOperation, [bShow]]]]):打开指定路径或文件,并可指定打开方式和参数。

- strPath: 要打开的文件路径。

- strDir: 指定运行路径。

- strArgs: 打开文件时传递的参数。

- strOperation: 打开方式,如"open"、"edit"等。

- bShow: 是否显示打开的窗口。

4. Explore(strPath, [strFlags]):在资源管理器中打开指定路径。

- strPath: 要打开的文件夹路径。

- strFlags: 打开资源管理器的标志。

5. Explore2(strPath, [strArg]):在资源管理器中打开指定路径并进行。

- strPath: 要打开的文件夹路径。

- strArg: 执行的参数。

6. OpenSpecialFolder(nFolder, [bExplore]):打开指定的系统特殊文件夹,如桌面、我的文档等。

shell编程之实现windows回收站功能分享

shell编程之实现windows回收站功能分享

shell编程之实现windows回收站功能分享⼀. 功能简介1. 将删除的⽂件放在回收站中2. 恢复删除的⽂件3. 实现linux rm命令的功能, 使⽤起来⼏乎和linux 系统⾃带的rm ,命令完全⼀样4. 新增功能: rm -l, rm -e, rm -c5. 该脚本每次在运⾏时候会检查$HOME/.trash ⽬录下⽂件⼤⼩之和, 若超过最⼤容量, 脚本会⾃动将⽇志⽂件中所记录⽂件中的前⼀半⽂件从回收站中清除,所以建议删除⼤⽂件(相对于回收站最⼤容量⽽⾔)直接⽤命令/bin/rm ⽽不要⽤ rm.⼆. 使⽤⽅法:1. 将trash⽂件放到 $HOME/bin/2. 在$HOME/.bashrc ⽂件中加⼊alias rm=”$HOME/bin/trash”, 重新登陆终端或执⾏bash命令。

3. 执⾏命令rm -e 配置回收站的最⼤容量,单位K4. 回收站的默认⽬录为:$HOME/.trash, 默认配置⽂件为:$HOME/.trash/trash.conf默认log⽂件为:$HOME/.trash/trash.log5. 怎样恢复⽂件:在linux 终端中输⼊rm -l,然后在RowNumber: 后⾯键⼊要删除⽂件所在的⾏标识:988 键⼊y/Y 然后按回车键恢复成功.如果想只查看删除列表, 则键⼊rm -l 后直接按回车键或者键⼊Q/q6. 更详细的参数介绍请键⼊:rm --help三. 注意事项1. 想要⼿动清空$HOME/.trash⽬录需要⽤/bin/rm命令, 请不要尝试⽤rm -r $HOME/.trash 的⽅法.2. 该脚本不⽀持rm -r -f , rm -rfi (选项组合超过2个)格式.3. 如果你可以你甚⾄可以⽤该脚本作为备份脚本,假若想备份test2.txt你只需要执⾏rm test2.txt,当然如果真想备份某个⽂件的话,最好编写专门的备份脚本。

复制代码代码如下:#!/bin/bash#配置回收站最⼤的存储空间(字节)#maxmemory=51200 (50M)#maxmemory=102400 (100M)#maxmemory=512000 (500M)#根据情况设置为50M(对于isoa服务开发来说⾜够了)maxmemory=3145728#设置回收站所在的⽬录trash=$HOME/.trash#设置⽇志⽂件所在的⽬录mvlog=$trash/trash.logfrom1=$1from2=$2var_pwd=var_father=#回收站若不存在,则新建之if [ ! -e $trash ];thenmkdir -p $trashchmod 755 $trashfi#产⽣7位的随机数function rand(){a=(0 1 2 3 4 5 6 7 8 9 a b c d e A B C D E F)for ((i=0;i<7;i++))doecho -n ${a[$RANDOM%${#a[*]}]}done}random=$(rand)#⽂件不存在时的提⽰信息function file_null(){local file=$1echo "rm: cannot remove '$file': No such file or directory"}#打印参数出错后的提⽰信息function echo_msg(){echo -n "rm: missing operandTry 'rm --help' for more information."}function echo_msg2(){echo -n "rm: invalid option '$1'Try 'rm --help' for more information."}#回收站管理函数function deal(){local tmp=$(mktemp /tmp/tfile.XXXXXX)local num=$(($(cat $mvlog| wc -l)/2))#awk -F: -v nu=$num -v trash=$trash '{if (NR<=nu) system("rm -rf "trash"'/'"$2"':'"$3""); \ #else print $0}' $mvlog | sort -o $mvlogawk -F: -v nu=$num -v trash=$trash '{if (NR<=nu) system("rm -rf "trash"'/'"$2"':'"$3""); \ else print $0}' $mvlog >> $tmpmv $tmp $mvlog}JUG=#⽬录处理函数function jug_cur(){local tmp=local dirname=$1local jug=${dirname/\/*/}if [ "$jug" == "." ];thenvar_pwd=${dirname/./$(pwd)}JUG=0elif [ "$jug" == ".." ];thentm=$(pwd)tmp=${tm%/*}var_father=${dirname/../$tmp}JUG=1#elif [ "$jug" == "~" ];then#return 2elseJUG=2fi}#命令不带参数时的普通⽂件删除函数function rm1{local filename=$(basename $from1)local dirname=$(dirname $from1)jug_cur $dirnameif [ "$JUG" -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ -d "$from1" ];thenecho "rm: cannot remove '$from1': Is a directory"elseif [ ! -e $from1 ];thenfile_null $from1elseecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from1" "$trash/$filename:$random"fifi}#rm -ifunction rmi(){local filename=$(basename $from2)local dirname=$(dirname $from2)jug_cur $dirnameif [ $JUG -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ -f "$from2" ];thenecho -n "rm: remove regular file '$from2'?"read answerif [ "$answer" = 'y' -o "$answer" = 'Y' ];thenecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"fielseif [ ! -e $from2 ];thenfile_null $from2elseecho "rm: cannot remove '$from2': Is a directory"fifi}#rm -ffunction rmf(){local filename=$(basename $from2)local dirname=$(dirname $from2)jug_cur $dirnameif [ $JUG -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ -f "$from2" ];thenecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"elseif [ ! -e $from2 ];then:elseecho "rm: cannot remove '$from2': Is a directory"fifi}#rm -rfunction rmr(){local filename=$(basename $from2)local dirname=$(dirname $from2)jug_cur $dirnameif [ $JUG -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ "$from2" = "." -o "$from2" = ".." ];thenecho "rm: cannot remove directory: '$from2'"elif [ -e "$from2" ];thenecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"elsefile_null $from2fi}#rm -rffunction rmrf(){local filename=$(basename $from2)local dirname=$(dirname $from2)jug_cur $dirnameif [ $JUG -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ "$from2" = "." -o "$from2" = ".." ];thenecho "rm: cannot remove directory: '$from2'"elif [ -e "$from2" ];thenecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"else:fi}#rm -irfunction rmir(){local filename=$(basename $from2)local dirname=$(dirname $from2)jug_cur $dirnameif [ $JUG -eq 0 ];thendirname=$var_pwdelif [ $JUG -eq 1 ];thendirname=$var_fatherfiif [ -e "$from2" ];thenif [ -d "$from2" ];thenecho -n "rm: remove directory '$from2'?"elseecho -n "rm: remove regular file '$from2'?"firead answerif [ "$answer" = 'y' -o "$answer" = 'Y' ];thenecho "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlogmv "$from2" "$trash/$filename:$random"fielseif [ ! -e $from2 ];thenfile_null $from2fifi}#清空回收站function rmc(){/bin/rm -rf $trash}function rml(){local tmp=$(mktemp /tmp/tfile.XXXXXX)clearif [ ! -d "$trash" ];thenmkdir $trashfiif [ ! -f "$mvlog" ];thentouch $mvlogfiline=$(cat -n $mvlog | awk -F: '{print $1, "FileName:"$2, "Time: "$4":"$5":"$6}')linecount=$(cat $mvlog | wc -l)echo -e "$line"echoechoecho "[$linecount] Please enter the file you want to restore (replaced with the line number)" printf "RowNumber: "read answerif [ "$answer" = 'q' -o "$answer" = 'Q' -o "$answer" = "" ];then:elseprintf "Please confirm (Y/N): "read answer1if [ "$answer1" = 'y' -o "$answer1" = 'Y' ];thenaddress=$(sed -n "$answer""p" $mvlog | awk -F: '{print $1}')filename=$(sed -n "$answer""p" $mvlog | awk -F: '{print $2}')filerand=$(sed -n "$answer""p" $mvlog | awk -F: '{print $3}')fullname=$address/$filenameif [ -e "$fullname" ];thenecho "The file exist!"sleep 0.5elseold="$trash/$filename:$filerand"new="$address/$filename"mv "$old" "$new"#deline=$(cat $mvlog|sed "$answer""d" | sort -o $mvlog)deline=$(cat $mvlog|sed "$answer""d" >> $tmp)mv $tmp $mvlogecho "restore success!"sleep 0.5fififi}function help(){cat << 'EOF'Usage: rm [OPTION]... FILE...Remove (unlink) the FILE(s).-f, --force ignore nonexistent files, never prompt-i, --interactive prompt before any removal--no-preserve-root do not treat `/' specially (the default)--preserve-root fail to operate recursively on `/'-r, -R, --recursive remove directories and their contents recursively--help display this help and exitBy default, rm does not remove directories. Use the --recursive (-r or -R)option to remove each listed directory, too, along with all of its contents.To remove a file whose name starts with a `-', for example `-foo',use one of these commands:rm -- -foorm ./-fooNote that if you use rm to remove a file, it is usually possible to recoverthe contents of that file. If you want more assurance that the contents aretruly unrecoverable, consider using shred.Report bugs to <bug-coreutils@>.EOF}#脚本开始#检测回收站已⽤存储空间,如果已经达到最⼤值,则删除⽇志⽂件中位于前⾯的⼀半的⽂件mem=$(du -s $trash|awk '{print $1}')if [ "$mem" -gt $maxmemory ];thendealfiif [ "$#" -eq 0 ];thenecho_msgfiif [ "$#" -eq 1 ];thencase "$from1" in-i)echo_msg-f)echo_msg-r | -R)echo_msg-ir|-ri|-iR|-Ri|-if|-fi|-rf|-fr|-Rf|-fR) echo_msg-l)rml-c)rmc--help)help-*)echo_msg2 $from1*)rm1esacfiif [ "$#" -ge 2 ];thenuntil [ "$2" = "" ]dofrom2=$2case "$from1" in-i)rmi-f)rmf-r|-R)rmr-l)rml-rf|-Rf|-fr|-fR)rmrf-ir|-ri|-iR|-Ri)rmir-if|-fi)rmf--help)helpexit 1-*)echo_msg2 $from1 exit 1*){until [ "$1" = "" ]dofrom1=$1rm1shiftdone}esacshiftdonefiexit。

Shell脚本实现Linux回收站功能

Shell脚本实现Linux回收站功能

fi if [ "$#" -eq 1 ] then case "$from1" in -i) echo "Try ‘rm –help’ for more informaction."; break ;; -f) echo "Try ‘rm –help’ for more informaction."; break ;; -r) echo "Try ‘rm –help’ for more informaction."; break ;;
[code lang=”shell”] #!/bin/bash from1=$1 from2=$2 garbage=$HOME/.garbage mvlog=$garbage/mv.log if [ ! -e $garbage ] then mkdir -p $garbage chmod 777 $garbage fi function rand { a=(0 1 2 3 4 5 6 7 8 9 a b c d e A B C D E F ) for ((i=0;i> $mvlog mv "$from1" "$garbage/$from1:$random" fi } function more { for file in * do echo "`pwd`/:$file:$random:`date`" >> $mvlog mv $file "$garbage/$file:$random" done 2> /dev/null } function rmi { if [ ! -d "$from2" ] then echo -n "rm:remove regular empty file ‘$from2’?" ; read answer; if [ "$answer" = ‘y’ -o "$answer" = ‘Y’ ] then

实用的shell脚本——用shell设计Linux下的回收站

实用的shell脚本——用shell设计Linux下的回收站

在linux字符界面下,没有类似回收站的功能,于是自己动手设计了一个,用Linux自带的shell,这里用bash,刚学了一点bash边写边学的这个程序结构简单,功能单一,需要不断修改和完善,相信经过完善之后会成为一个很实用的工具!欢迎所有人修改,高手路过看着恶心,可以全部删除重写,还有很多功能没时间完善它了,路过的提点建议吧!#!/bin/bashif[ -d "$1" ]; thenmv$1 /home/.trush/dir;echo'目录已放入回收站';elif[ -f "$1" ]; thenmv$1 /home/.trush/fil;echo'文件已放入回收站';elseecho'#####回收站#######';echo'----目录文件-----';ls/home/.trush/dir;echo'----标准文件----';ls/home/.trush/fil;ficase"$1" in-c)echo清空回收站;rm/home/.trush/fil/*;rm-rf /home/.trush/dir/*;;;-d)#彻底删除if[ -d "/home/.trush/dir/$2" ]; thenrm-rf /home/.trush/dir/$2;echo已将目录文件$2彻底删除;elif[ -f "/home/.trush/fil/$2" ]; thenecho已将标准文件$2彻底删除;rm/home/.trush/fil/$2;elseecho'@@@@@@@@@@@@@@@@@@@@@'; echo没找到你要删除的文件;fi;;-l)echo查看回收站;echo目录文件;ls/home/.trush/dir;echo标准文件;ls/home/.trush/fil;;;-r)if[ -d "/home/.trush/dir/$2" ]; thenmv/home/.trush/dir/$2 $3;echo已将目录文件$2还原到目标文件夹$3;elif[ -f "/home/.trush/fil/$2" ]; thenecho已将标准文件$2还原到目标文件夹$3;mv/home/.trush/fil/$2 $3;elseecho'@@@@@@@@@@@@@@@@@@@@@'; echo没找到你要还原的文件;fi;;-h)echo'[file] 将文件放入回收站';echo-c 清空回收站;echo'-d (file)彻底删除';echo-l 查看回收站;echo'-r 还原文件/用法-r(要还原文件)(目标目录)'; echo-h 查看帮助;;*)echo"#######################"esac#echo'[file] 将文件放入回收站';#echo-c清空回收站;#echo-l 查看回收站;#echo -r 还原文件/用法-r(要还原文件)(目标目录)'; #echo-h 查看帮助;;#回收站位置"/home/.trush/*"#!/bin/bash#mkdir/home/.trush/fil;#mkdir/home/.trush/dir;#chmod777 -R /home/.trush/*;#cp./del.sh /usr/local/games/del;#chmod+x /usr/local/games/del;#ln/usr/local/games/del /bin;。

使用命令行打开回收站的方法

使用命令行打开回收站的方法

使用命令行打开回收站的方法回收站是一种操作系统提供的特殊文件夹,用于存放删除的文件和文件夹,防止用户不小心删除数据而无法恢复。

虽然大多数用户会通过图形界面方式打开回收站,但也可以使用命令行的方式来打开回收站。

本文将介绍如何使用命令行打开回收站以及其他与回收站相关的命令。

在Windows操作系统中,可以使用命令行工具cmd来打开回收站。

打开命令提示符窗口的方法有多种,最简单的方式是按下Win+R组合键,然后输入cmd并按下回车键。

此时会弹出一个黑色的窗口,即命令提示符。

在命令提示符窗口中,可以通过输入命令explorer来打开回收站。

具体命令如下所示:```explorer shell:RecycleBinFolder```运行以上命令后,会自动打开回收站的窗口。

在该窗口中,可以查看已经删除但还未永久删除的文件和文件夹。

如果需要恢复某个已删除的文件,则可以在回收站窗口中右键点击该文件,然后选择“还原”选项即可。

除了使用explorer命令打开回收站之外,还可以通过其他命令来管理回收站。

以下是一些常用的与回收站相关的命令:1. rd命令:用于删除空的回收站目录。

具体命令如下:```rd /s %systemdrive%\recycler```该命令会删除系统盘上的回收站目录,但会保留其中的内容。

2. rmdir命令:用于删除回收站目录及其中的内容。

具体命令如下:```rmdir /s /q C:\$Recycle.Bin```该命令会删除C盘的回收站目录,并且不会询问是否确认删除。

3. cleanmgr命令:用于打开磁盘清理工具,可以清理系统中的临时文件和回收站中的内容。

具体命令如下:```cleanmgr /sageset:1cleanmgr /sagerun:1```第一条命令会打开磁盘清理工具的设置界面,可以选择要清理的项目。

第二条命令会根据第一条命令的设置清理系统中的临时文件和回收站中的内容。

Windows7系统shell命令的介绍

Windows7系统shell命令的介绍

Windows7系统shell命令的介绍Windows7系统shell命令的介绍Windows7系统相对以前版本的Windows系统,拥有更高的稳定性、兼容性、人性化等等各式各样的服务。

而Windows 7中的shell命令行,则是许多用户都没有发现的又一重要更新,Windows 7 shell是Windows 7系统的控制台。

对于熟悉了命令行的人来说,用键盘调用程序比鼠标更快更省力。

shell:Profile该命令能打开用户的'总目录。

一般它的总目录的位置是c:usersusername。

可以通过点击系统开始菜单上的用户名称访问。

shell:Personal该命令可以打开当前用户的文档文件夹。

也可以通过点击开始菜单中的我的文档进行访问。

shell:SendTo该命令可以打开发送到文件夹。

shell:Public该命令可以打开公用共享文件夹。

shell:Common Startup和shell:Startup该命令可以显示哪些程序在系统启动时会自动启动。

shell:ConnectionsFolder该命令可以显示当前网络连接。

通常的方法是单击网络和共享中心,然后选择更改适配器设置查看。

shell:programs和shell:Common Programs这两个命令可以访问当前用户和系统用户开始菜单中的程序列表windows7系统下载。

shell:AppData和shell:Local AppData这两个命令可以打开Roaming Application Data文件夹Local Application Data文件夹。

这两个文件夹在日常应用中不常用到的。

shell:Cookies和shell:cache这两个命令是查看Internet Explorer存储信息最快捷的方式。

shell:Profile当前登录用户的根目录。

shell:Searches当前登录用户的搜索文件夹,保存了已经存储过的搜索结果。

SHFileOperation的用法

SHFileOperation的用法

SHFileOperation的⽤法在Windows的shellapi⽂件中定义了⼀个名为SHFileOperation()的外壳函数,它可以⽤来实现各种⽂件操作,例如⽂件的拷贝、删除和移动等,该函数使⽤起来⾮常简单,它只有⼀个指向SHFILEOPSTRUCT结构的参数。

使⽤SHFileOperation()函数时只要填写该专⽤结构--SHFILEOPSTRUCT,告诉Windows执⾏什么样的操作,以及其它重要信息就⾏了。

SHFileOperation()的特别之处在于它是⼀个⾼级外壳函数,不同于低级⽂件处理。

当调⽤SHFileOperation操作⽂件时,相应的外壳拷贝处理器(如果有的话)被调⽤。

如在删除某个⽂件时,SHFileOperation会将删除的⽂件放到Recycle Bin中。

SHFileOperation()函数原型为:WINSHELLAPI int WINAPI SHFileOperation(LPSHFILESTRUCT lpFileOp); LPSHFILESTRUCT结构格式如下: Typedef struct _shFILEOPSTRUCT { HWND hWnd; //消息发送的窗⼝句柄; UINT wFunc; //操作类型 LPCSTR pFrom; //源⽂件以及路径 LPCSTR pTo; //⽬标⽂件以及路径 FILEOP_FLAGS fFlags; //操作选择位 LPVOID hNameMapping; //⽂件映射 LPCSTR lpszProgressTitle; //⽂件操作进度窗⼝标题 }SHFILEOPSTRUCT,FAR* LPSHFILEOPSTRUCT;在这个结构中,hWnd是指向发送消息的窗⼝句柄,pFrom与pTo是进⾏⽂件操作的源⽂件名和⽬标⽂件名,它包含⽂件的路径,对应单个⽂件的路径字符串,或对于多个⽂件,必须以NULL作为字符串的结尾或⽂件路径名之间的间隔,否则在程序运⾏的时候会发⽣错误。

在VBScript和PowerShell中处理回收站文件

在VBScript和PowerShell中处理回收站文件

在VBScript和PowerShell中处理回收站文件
青成(译)
【期刊名称】《《Windows IT Pro Magazine:国际中文版》》
【年(卷),期】2011(000)001
【摘要】EmptyRecycleBin.Vbs是一个VBScript脚本,可以用于轻松删除回收站中的全部文件。

在需要删除、恢复或查看回收站中的独立文件时,则可以使用PowerShell脚本Get—Recycled.psi。

【总页数】1页(P57-57)
【作者】青成(译)
【作者单位】
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.在Dos下恢复Windows回收站中的文件 [J], 刘安洁;崔广润
2.用WinRAR查看“回收站”中的文件 [J], 寂寂无闻
3.直接打开回收站中的文件 [J], 陈桂鑫
4.禁止查看回收站中的文件 [J], 飘青山漫步
5.不需软件将回收站中误删文件恢复 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。

shell reg delete 语法例子(二)

shell reg delete 语法例子(二)

shell reg delete 语法例子(二)Shell reg delete 语法例子1. 概述在Shell脚本中,reg delete命令用于删除Windows注册表中的指定键值。

2. 语法reg delete <key> [/v <value>] [/f]其中:•<key>:指定要删除的注册表键的路径。

•/v <value>:可选参数,用于指定要删除的键值的名称。

•/f:可选参数,表示强制删除,不需要用户确认。

3. 例子•例子 1:删除指定路径的注册表键reg delete HKEY_CURRENT_USER\Software\MyApp上述命令将删除HKEY_CURRENT_USER。

•例子 2:删除指定路径的注册表键及其子键reg delete HKEY_LOCAL_MACHINE\Software\MyApp /f上述命令将删除HKEY_LOCAL_MACHINE,并强制删除,不需要用户确认。

•例子 3:指定要删除的键值reg delete HKEY_CURRENT_USER\Software\MyApp /v Vers ion上述命令将删除HKEY_CURRENT_USER。

•例子 4:删除远程计算机上的注册表键reg delete \\RemoteComputer\HKEY_LOCAL_MACHINE\Soft ware\MyApp上述命令将删除RemoteComputer上HKEY_LOCAL_MACHINE。

4. 总结以上是一些常见的reg delete命令的例子,可以根据实际需求来进行扩展和调整。

通过合理使用reg delete命令,可以方便地管理和修改Windows注册表,使系统配置更加灵活和高效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jug_cur $dirname if [ $JUG -eq 0 ];then
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_father fi
if [ -f "$from2" ];then echo "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"
jug_cur $dirname if [ $JUG -eq 0 ];then
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_father fi
if [ "$from2" = "." -o "$from2" = ".." ];then echo "rm: cannot remove directory: '$from2'"
tm=$(pwd) tmp=${tm%/*} var_father=${dirname/../$tmp} JUG=1 #elif [ "$jug" == "~" ];then # return 2 else JUG=2 fi }
#命令不带参数时的普通文件删除函数 function rm1 {
local filename=$(basename $from1) local dirname=$(dirname $from1)
else if [ ! -e $from2 ];then file_null $from2 else echo "rm: cannot remove '$from2': Is a directory" fi
fi }
#rm -f function rmf() {
local filename=$(basename $from2) local dirname=$(dirname $from2)
jug_cur $dirname if [ "$JUG" -eq 0 ];then
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_father fi
if [ -d "$from1" ];then echo "rm: cannot remove '$from1': Is a directory"
fi }
#rm -i function rmi()
2 of 6
08/16/2013 01:25 PM
{ local filename=$(basename $from2) local dirname=$(dirname $from2)
jug_cur $dirname if [ $JUG -eq 0 ];then
fi }
#rm -rf function rmrf()
file:///home/aaron/nfs/20130816/trash.sh.html
3 of 6
08/16/2013 01:25 PM
{ local filename=$(basename $from2) local dirname=$(dirname $from2)
elif [ -e "$from2" ];then echo "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"
else file_null $from2
else if [ ! -e $from2 ];then : else echo "rm: cannot remove '$from2': Is a directory" fi
fi }
#rm -r function rmr() {
local filename=$(basename $from2) local dirname=$(dirname $from2)
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_father fi
if [ -f "$from2" ];then echo -n "rm: remove regular file '$from2'?" read answer if [ "$answer" = 'y' -o "$answer" = 'Y' ];then echo "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random" fi
mkdir -p $trash chmod 755 $trash fi
#产生7位的随机数 function rand() {
a=(0 1 2 3 4 5 6 7 8 9 a b c d e A B C D E F) for ((i=0;i<7;i++)) do
echo -n ${a[$RANDOM%${#a[*]}]} done }
elif [ -e "$from2" ];then echo "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from2" "$trash/$filename:$random"
else :
fi }
#rm -ir function rmir() {
local filename=$(basename $from2) local dirname=$(dirname $from2)
jug_cur $dirname if [ $JUG -eq 0 ];then
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_f=======CODE======================== #!/bin/bash #配置回收站最大的存储空间(字节) #maxmemory=51200 (50M) #maxmemory=102400 (100M) #maxmemory=512000 (500M)
}
#打印参数出错后的提示信息 function echo_msg() {
echo -n "rm: missing operand Try 'rm --help' for more information. " }
function echo_msg2() {
echo -n "rm: invalid option '$1' Try 'rm --help' for more information. " }
else if [ ! -e $from1 ];then file_null $from1 else echo "$dirname:$filename:$random:$(date +%Y-%m-%d.%T)" >> $mvlog mv "$from1" "$trash/$filename:$random" fi
jug_cur $dirname if [ $JUG -eq 0 ];then
dirname=$var_pwd elif [ $JUG -eq 1 ];then
dirname=$var_father fi
if [ "$from2" = "." -o "$from2" = ".." ];then echo "rm: cannot remove directory: '$from2'"
file:///home/aaron/nfs/20130816/trash.sh.html
: << EOF trash 命令替代linux rm命令实现windows回收站的功能 一. 功能简介
1. 将删除的文件放在回收站中 2. 恢复删除的文件 3. 实现linux rm命令的功能, 使用起来几乎和linux 系统自带的rm ,命令完全一样 4. 新增功能: rm -l, rm -e, rm -c 5. 该脚本每次在运行时候会检查$HOME/.trash 目录下文件大小之和, 若 超过最大容量, 脚本会自动将日志文件中所记录文件中的前一半文件从回 收站中清除,所以建议删除大文件(相对于回收站最大容量而言)直接用 命令/bin/rm 而不要用 rm. 二. 使用方法: 1. 将trash文件放到 $HOME/bin/ 2. 在$HOME/.bashrc 文件中加入alias rm=”$HOME/bin/trash”, 重新登陆终端或执行bash命令。 3. 执行命令rm -e 配置回收站的最大容量,单位K 4. 回收站的默认目录为:$HOME/.trash, 默认配置文件为:$HOME/.trash/trash.conf 默认log文件为:$HOME/.trash/trash.log 5. 怎样恢复文件: 在linux 终端中输入rm -l, 然后 在RowNumber: 后面键入要删除文件所在的行标识:988 键入y/Y 然后按回车键 恢复成功. 如果想只查看删除列表, 则键入rm -l 后直接按回车键或者键入Q/q 6. 更详细的参数介绍请键入:rm --help 三. 注意事项 1. 想要手动清空$HOME/.trash目录需要用/bin/rm命令, 请不要尝试用rm -r $HOME/.trash 的方法. 2. 该脚本不支持rm -r -f , rm -rfi (选项组合超过2个)格式. 3. 如果你可以你甚至可以用该脚本作为备份脚本, 假若想备份test2.txt你只需要执行rm test2.txt, 当然如果真想备份某个文件的话, 最好编写专门的备份脚本。 EOF
相关文档
最新文档