找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16187|回复: 3

[其他] bat&python混编

[复制链接]
发表于 2015-10-24 23:51:55 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2015-10-25 12:36 编辑

采用的清屏+注释屏蔽法,混编及传值方式与bat&js混编类同,类似的需注意批处理代码中包含 ''' 字符的问题
  1. @echo off
  2. set "str=hello world"
  3. for /f "delims=" %%a in ('python -c "print('%str%'.upper())"') do echo;%%a
  4. pause
复制代码
  1. @echo off
  2. (for /l %%a in (1 1 5) do @echo;%%a)|python -c "import sys;print(sys.stdin.read().replace('3','hi'))"
  3. pause
复制代码
  1. #coding: gbk
  2. '''*&cls
  3. @echo off
  4. set "str=哈"
  5. python "%~f0" "%str%"
  6. pause&exit
  7. '''
  8. import sys
  9. print(sys.argv[1]*10);
复制代码
  1. '''*&cls
  2. @echo off
  3. >"%tmp%\a.txt" (for /l %%a in (1 1 5) do @set /p=%%a)<nul
  4. python "%~f0"<"%tmp%\a.txt">"%tmp%\b.txt"
  5. start "" "%tmp%\b.txt"
  6. pause&exit
  7. '''
  8. import sys;
  9. line=list(sys.stdin.readline());
  10. print(''.join([str(int(x)+1) for x in line]));
复制代码
  1. #*&cls&wmic LogicalDisk where "DriveType='3'" get Caption,FreeSpace|python "%~f0"&pause&exit
  2. import sys;
  3. n=0;
  4. while True:
  5.     line=sys.stdin.readline().replace('\r\n','');
  6.     if not line:
  7.         break;
  8.     if n==1:
  9.         ar=line.split();
  10.         print(ar[0]+'\t'+str(long(ar[1])/1073741824)+'GB');
  11.     else:
  12.         print(line);
  13.         n+=1;
复制代码

评分

参与人数 2技术 +2 收起 理由
CrLf + 1 感谢分享
依山居 + 1 1

查看全部评分

发表于 2015-10-25 00:01:14 | 显示全部楼层
我了个去。。我最近也想试试来着。
发表于 2015-10-25 00:36:51 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-25 01:00 编辑

encoding: gb2312 貌似更方便一点,两边都能放中文
另,建议 # 后不留空格,因为 path 中如果有个 #.bat 的话...
 楼主| 发表于 2015-10-25 10:26:44 | 显示全部楼层
回复 3# CrLf

嗯,确有可能,多谢提醒
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:52 , Processed in 0.019373 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表