CHFS

CHFS官网

CHFS是另一个命令行支持二维码的传输,其搭建的http服务器用浏览器另外打开,命令行不自动显示二维码。而且官方默认的只是支持文件夹共享。这个软件现在实际已经放弃使用,这里面主要记录一下cmd代码备忘


记录一

针对chfs.exe,觉得官方命令行操作有诸多不便,感谢【愚无尽】提供思路,自己写了一个cmd文件,觉得还是非常方便:

  • 任意移动文件夹都不会影响chfs.exe的操作
  • 一次运行便解决注册表以及cmd文件引用的问题。

需要一个官方的chfs的exe文件,放置在任意目录,举例:如d:\soft\chfs\chfs-windows-x64-3.1.exe,在该文件夹d:\soft\chfs\下用记事本保存一个cmd文件(ANSI模式),复制以下代码,保存任意名称的cmd文件,以管理员模式运行。

这个代码主要实现:

  1. 将当前的exe文件复制到windows目录下,并且重命名为chfs.exe
  2. 直接在windows目录下生成一个chfs_start.cmd文件,并在文件中写入代码。
  3. 添加注册表右键菜单(文件夹背景右键菜单)。

代码一:绿化功能.cmd

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
@echo.
@echo ---------------------------
@echo 本脚本需要以管理员模式运行!
@echo ---------------------------
@echo 将完成以下操作:& echo 1、复制文件到windows目录;& echo 2、写入cmd到windows目录,& echo 3、添加右键菜单。
@echo ---------------------------
@echo.
@echo @for /f "tokens=16" %%%%i in ('ipconfig ^^^|find /i "ipv4"') do ( > %~dp0chfs_start.cmd
@echo @set myip=%%%%i >> %~dp0chfs_start.cmd
@echo @goto out >> %~dp0chfs_start.cmd
@echo ) >> %~dp0chfs_start.cmd

@echo :out  >> %~dp0chfs_start.cmd
@echo @taskkill /F /IM "chfs.exe" /T ^>nul 2^>nul >> %~dp0chfs_start.cmd
@echo @start http://%%myip%% >> %~dp0chfs_start.cmd
@echo @chfs.exe --path="%%1" >> %~dp0chfs_start.cmd


@copy %~dp0chfs-windows-x64-3.1.exe %systemroot%\chfs.exe /y
@copy %~dp0chfs_start.cmd %systemroot%\chfs_start.cmd /y && del %~dp0chfs_start.cmd /f

@echo.

@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\chfs /ve /d CHFS共享目录 /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\chfs /v icon /d "%systemroot%/system32/shell32.dll,25" /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\chfs\command /ve /d "chfs_start.cmd ""%%v.""" /f>nul 2>nul
@echo 操作已完成,可以在任意目录右键菜单点击 CHFS共享目录 来启动。
@echo.
@pause

记录二

这个是针对文件和文件夹,在上面右键菜单直接启动共享,并且自动跳转到浏览器二维码显示界面。

  • 还是将可执行文件复制到windows,并命名为chfs.exe,减少后期维护
  • 同时在windows目录下生成两个文件,一个控制文件右键的cmd,一个控制文件夹的右键的cmd。
  • 文件和文件夹分两个cmd文件写入到右键菜单,因为文件夹得二维码是采用zip压缩后生- 成的,而文件是直接提供完整路径下载的。
  • 二维码方式是采用的firefox的一个二维码插件。

文件夹二维码.cmd

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
@echo.
@echo ---------------------------
@echo 本脚本需要以管理员模式运行!
@echo ---------------------------
@echo 将完成以下操作:& echo 1、复制文件到windows目录;& echo 2、写入cmd到windows目录,& echo 3、添加右键菜单。
@echo ---------------------------
@echo.

::写入新的文件
@echo @echo off > %~dp0chfs_file_qrcode.cmd
@echo @for /f "tokens=16" %%%%i in ('ipconfig ^^^|find /i "ipv4"') do ( >> %~dp0chfs_file_qrcode.cmd
@echo @set myip=%%%%i >> %~dp0chfs_file_qrcode.cmd
@echo @goto out >> %~dp0chfs_file_qrcode.cmd
@echo ) >> %~dp0chfs_file_qrcode.cmd
@echo @echo on >> %~dp0chfs_file_qrcode.cmd
@echo :out  >> %~dp0chfs_file_qrcode.cmd
@echo @taskkill /F /IM "chfs.exe" /T ^>nul 2^>nul >> %~dp0chfs_file_qrcode.cmd
::该行暂废@echo @start http://%%myip%%/ >> %~dp0chfs_file_qrcode.cmd

::变量设置
::FIREFOX文件地址:
@echo @set firefoxexe=D:\firefox_113\core\firefox.exe >> %~dp0chfs_file_qrcode.cmd
::获取二维码扩展地址
@echo @set qrcodeaddress=moz-extension://25f5541a-d85b-4f42-a635-5ddde66b58bb/qrencode.html?q=>> %~dp0chfs_file_qrcode.cmd
::获取当前共享文件地址
@echo @set sharepath=%%~dp0 >> %~dp0chfs_file_qrcode.cmd
::获取当前IP连接(清除尾部空格):
@echo @set myip=%%myip:~,-1%%>> %~dp0chfs_file_qrcode.cmd
::@echo @set hostadd=http%%3A%%2F%%2F%myip%%%2Fchfs%%2Fshared%%2F>> %~dp0chfs_file_qrcode.cmd
@echo @set hostadd=http://%%myip%%/chfs/shared/>> %~dp0chfs_file_qrcode.cmd
::获取当前选择的文件地址:
@echo @set selectfileorpath=%%~n1%%~x1 >> %~dp0chfs_file_qrcode.cmd

@echo @start %%firefoxexe%% %%qrcodeaddress%%%%hostadd%%%%selectfileorpath%%>> %~dp0chfs_file_qrcode.cmd
@echo @chfs.exe --path="%%sharepath%%" >> %~dp0chfs_file_qrcode.cmd

::复制chfs可执行文件到windows
@copy %~dp0chfs-windows-x64-3.1.exe %systemroot%\chfs.exe /y
::复制后删除生成的文件
@copy %~dp0chfs_file_qrcode.cmd %systemroot%\chfs_file_qrcode.cmd /y && del %~dp0chfs_file_qrcode.cmd /f

@echo.

@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\chfs /ve /d CHFS文件二维码 /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\chfs /v icon /d "%systemroot%/system32/shell32.dll,26" /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\chfs\command /ve /d "chfs_file_qrcode.cmd ""%%v""" /f>nul 2>nul
@echo 操作已完成,可以在任意文件右键菜单点击 CHFS文件二维码 来启动二维码。
@echo.
@pause

文件夹二维码代码.cmd

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
@echo.
@echo ---------------------------
@echo 本脚本需要以管理员模式运行!
@echo ---------------------------
@echo 将完成以下操作:& echo 1、复制文件到windows目录;& echo 2、写入cmd到windows目录,& echo 3、添加右键菜单。
@echo ---------------------------
@echo.

::写入新的文件
@echo @echo off > %~dp0chfs_folder_qrcode.cmd
@echo @for /f "tokens=16" %%%%i in ('ipconfig ^^^|find /i "ipv4"') do ( >> %~dp0chfs_folder_qrcode.cmd
@echo @set myip=%%%%i >> %~dp0chfs_folder_qrcode.cmd
@echo @goto out >> %~dp0chfs_folder_qrcode.cmd
@echo ) >> %~dp0chfs_folder_qrcode.cmd
@echo @echo on >> %~dp0chfs_folder_qrcode.cmd
@echo :out  >> %~dp0chfs_folder_qrcode.cmd
@echo @taskkill /F /IM "chfs.exe" /T ^>nul 2^>nul >> %~dp0chfs_folder_qrcode.cmd
::该行暂废@echo @start http://%%myip%%/ >> %~dp0chfs_folder_qrcode.cmd

::变量设置
::FIREFOX文件地址:
@echo @set firefoxexe=D:\firefox_113\core\firefox.exe >> %~dp0chfs_folder_qrcode.cmd
::获取二维码扩展地址
@echo @set qrcodeaddress=moz-extension://25f5541a-d85b-4f42-a635-5ddde66b58bb/qrencode.html?q=>> %~dp0chfs_folder_qrcode.cmd
::获取当前共享文件地址
@echo @set sharepath=%%~dp0 >> %~dp0chfs_folder_qrcode.cmd
::获取当前IP连接(清除尾部空格):
@echo @set myip=%%myip:~,-1%%>> %~dp0chfs_folder_qrcode.cmd
::@echo @set hostadd=http%%3A%%2F%%2F%myip%%%2Fchfs%%2Fshared%%2F>> %~dp0chfs_folder_qrcode.cmd
@echo @set hostadd=http://%%myip%%/chfs/downloaddir/>> %~dp0chfs_folder_qrcode.cmd
::获取当前选择的文件地址:
@echo @set selectfileorpath=%%~n1%%~x1.zip >> %~dp0chfs_folder_qrcode.cmd

@echo @start %%firefoxexe%% %%qrcodeaddress%%%%hostadd%%%%selectfileorpath%%>> %~dp0chfs_folder_qrcode.cmd
@echo @chfs.exe --path="%%sharepath%%" >> %~dp0chfs_folder_qrcode.cmd

::复制chfs可执行文件到windows
@copy %~dp0chfs-windows-x64-3.1.exe %systemroot%\chfs.exe /y
::复制后删除生成的文件
@copy %~dp0chfs_folder_qrcode.cmd %systemroot%\chfs_folder_qrcode.cmd /y && del %~dp0chfs_folder_qrcode.cmd /f

@echo.

@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\chfs /ve /d CHFS文件夹二维码 /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\chfs /v icon /d "%systemroot%/system32/shell32.dll,26" /f>nul 2>nul
@reg add HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\chfs\command /ve /d "chfs_folder_qrcode.cmd ""%%v""" /f>nul 2>nul
@echo 操作已完成,可以在任意目录右键菜单点击 CHFS文件夹二维码 来启动二维码。
@echo.
@pause