Articles of batch file

如何接受Linux shell中的左/右/上/下箭头input?

我写了一个Java应用程序(input.readLine()),它继续读取input,直到用户键入一个退出命令。 我有一个.bat脚本,可以在Windows中启动它,用.sh在Linux中启动它。 该应用程序在两个工作正常。 而在Windows中,如果你input一个像“check email”这样的命令,然后回车,它将执行命令。 然后,在下一个提示符(即:下一次Java应用程序读取一行input)时,您可以点击向上箭头,并回想起您的“检查电子邮件”命令。 你可以按左箭头键左移光标,等等。这正是我想要的。 但是,在Linux上,按向上键会导致^ [[D出现。 左右箭头键产生相似的ASCII输出,如^ [[C。 我听说过stty并查看了手册页,但是无法通过启动我的Java应用程序来找出需要在.sh脚本中更改的内容。 谁能帮我?

如何设置一个自动(重新)开始的背景SSH隧道

我是一个初学者的Linux用户,也很新手在SSH和隧道。 无论如何,我的目标是维护一个在后台打开的ssh隧道。 为了做到这一点,我写了下面的批处理,然后我将其添加到crontab中(批处理在工作date间从上午8点到晚上9点每5分钟自动处理一次)。 我读了一些其他线程在stackoverflow中,应该使用autossh,将确保ssh将永远通过一个经常性检查确定。 我也是…. #!/bin/bash LOGFILE="/root/Tunnel/logBatchRestart.log" NOW="$(date +%d/%m/%Y' – '%H:%M)" # date & time of log if ! ps ax | grep ssh | grep tunnelToto &> /dev/null then echo "[$NOW] ssh tunnel not running : restarting it" >> $LOGFILE autossh -f -N -L pppp:tunnelToto:nnnnn nom-prenom@193.xxx.yyy.zzz -p qqqq if ! ps ax | grep […]

有哪些选项可用于获取cron的结果以及如何设置它们?

我知道默认的cron的行为是发送正常和错误输出到cron的所有者本地邮箱。 有没有其他方法可以得到这些结果(例如,通过电子邮件发送给一群人,将它们存储在某个地方,等等)?

无法获取rsync排除选项以排除目录

有一个与rsync的问题。 我使用rsync作为荣耀的cp命令。 我在脚本中有以下代码。 rsync -aL –exclude /path/to/exclude/ –exclude='.*' /source/ /destination 我可以得到rsync来排除任何隐藏的文件。 因此'.*'我不能得到排除目录排除。 我试过使用'='标志,用双引号括起来,用单引号。 任何帮助将不胜感激。 提前致谢。

sh中的%〜dp0的等价值

我使用sh将一些Windowsbatch file转换为Unix脚本。 我有问题,因为一些行为依赖于batch file中可用的%〜dp0macros。 有没有相当于这个? 任何方式来获取执行脚本所在的目录?

防止batch file停止运行

我做了一个脚本从一个batch file启动mysql,但一旦select启动服务器被选中,batch file被阻止继续由于执行该文件。 一旦命令执行后如何让它继续? 代码部分 :START cd "C:\Program Files\MySQL\MySQL Server 5.6\bin" CALL "mysqld" -u y121 -P 3307 & cls PAUSE

将.bat文件转换为Windows计划任务操作

我目前有一个.bat文件与这个代码是由Windows计划任务调用,并且它运行完美( 注意我没有运行整个py脚本,只是从内部的函数): SET PATH=c:\python27\ArcGIS10.5\;c:\Windows\system32\;C:\Python27\ArcGIS10.5\Scripts python -c "import sys;sys.path.append(r'\\moss\scripts\Automated');import dbAudit;dbAudit.propInsDate()" 我试图删除所有我的任务依赖.bat文件的需要,当.py文件驻留在相同的目录中,并且它是完全可调用的。 就像在黑暗中的初始刺我已经尝试将其添加到程序/脚本框: C:\Windows\System32\cmd.exe 然后将其添加到参数框中: python -c "import sys;sys.path.append(r'\\moss\scripts\Automated');import dbAudit;dbAudit.propInsDate()" 这似乎失败了,因为我不认为我的转换是如此简单,我可以看到我没有包含任何“设置path”项目。 你是否认为我的bat文件能够被排除在外,可以直接在Windows Scheduled Task中完成? 感谢你的协助。

批处理脚本删除除“开始”之外的所有文件夹

我有一个文件夹与几个子文件夹。 结构如下: C:\ FOO C:\ FOO \ web.foo C:\ FOO \ web.bar C:\ FOO \ win.foo C:\ FOO \ win.bar C:\ FOO \ mobile.foo C:\ FOO \ mobile.bar 我有时希望用下面的批处理脚本删除包含文件的文件夹: rmdir C:\foo /s /q 这里没有关系,整个文件夹C:\ foo被完全删除了。 但是现在我只想删除C:\ foo的子文件夹,其中包含的文件不能以“web”开头。 。 你有什么好的解决scheme吗? 先谢谢你!

批处理:比较Dir列表txt文件

Windows 7/8/10(x86 / x64) 窗口批次 大家好, 首先,我已经给予的任务: 每天使用Robocopy将音乐库驱动器备份到辅助驱动器。 由于可能会删除音乐库中的文件,因此这两者不能成为镜像克隆 。 只有不同的/新的文件被复制到备份驱动器。 有时会发现一个或多个文件位于音乐库的不正确的文件夹中,并被移至正确的文件夹。 备份脚本启动后,会将这些“新”文件及其“新”文件夹复制到备份驱动器。 然后备份驱动器有两个文件副本,一个在树中是正确的“新”位置,另一个是旧的错误的。 旧的是一个不需要的副本。 到目前为止,我设法编写了以下脚本: 运行最新的Robocopy日志文件(RClog),将源文件path转换为备份驱动器上的正确path。 所以可以比较。 DIR备份驱动器并转储到文本文件。 将转换后的RClog放入variables的“数组”中。 运行DIR列表中的每一行,并将文件名与数组进行比较。 如果匹配,请查看完整path是否匹配。 如果不是完整path匹配,那么这是一个可能的*重复。 输出txt文件的完整path。 所以,我现在的代码如下。 然而,这是痛苦的缓慢。 我想这是因为我正在执行接近100万的行动! 在RClog中有大约10k个mp3文件和大约100个新拷贝的文件。 我想我需要开始,而不是,文件,RClog的小列表,并find这些文件在备份驱动器的DIR_List。 但是,我注意到FINDSTR不喜欢反斜杠,需要它们逃脱。 这将需要一个FOR循环做可变的子stringreplace,这可能会减慢两个列表的东西。 有一个最后的任务,我必须执行,这将是MD5哈希build议不需要的重复文件,看看它是否与新复制相同。 *可能是因为分享同一个名字,而是来自不同的艺术家,所以需要检查。 这里可能需要一些人为的干预,但是大部分的自动化是关键,而且自动化更快。 虽然我真的希望保持这个纯粹的批次没有第三方工具 ,我会考虑使用PowerShell,只要它达到3.0版。 我不想更新系统上的东西,并强制更改。 我正在努力与那里有什么,纯批次是可用的。 我提前道歉,相当随意的评论风格。 提前感谢任何贡献。 ::@ECHO OFF @ECHO: @ECHO: =========================================================== @ECHO: @ECHO: Music_library backup duplicate files finder @ECHO: @ECHO: Finds […]

与目录名称的批处理问题

我注意到,如果文件夹名称中有任何空格,我的批处理脚本无法正常工作: C:\ ProgramFiles(x86)\ abc \ def \ example.bat→所有任务都正确完成 C:\ Program Files(x86)\ abc \ def \ example.bat→错误行为 必须发生什么变化? { example.bat } @echo off for %%F in ("%~dp0..\*.wgm") do ( set "file=%%~nxF" move "%%F" "%cd%" >nul goto :next ) :next if not exist %cd%\output md output if not exist %cd%\temp md temp echo File "%file%" was moved […]