[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] bat&python混编

本帖最后由 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

评分人数

回复 3# CrLf

嗯,确有可能,多谢提醒

TOP

本帖最后由 CrLf 于 2015-10-25 01:00 编辑

encoding: gb2312 貌似更方便一点,两边都能放中文
另,建议 # 后不留空格,因为 path 中如果有个 #.bat 的话...

TOP

我了个去。。我最近也想试试来着。

TOP

返回列表