顯示具有 CMD 標籤的文章。 顯示所有文章
顯示具有 CMD 標籤的文章。 顯示所有文章

2016年12月7日 星期三

安裝網路共用印表機的批次檔


在公司的環境裡,常會遇到要安裝共用印表機並設定自定紙張等等的步驟,以下是一個cmd批次檔,將一些常用的步驟整合在一起。
自定紙張的部份是設定紙張名稱 1/2 Letter,寬21.59cm,高13.97cm,如有不一樣。
請先手動設定,然後從機碼HKLM\SYSTEM\CurrentControlSet\Control\Print\Forms上匯出來再自行修改。


REM 儲存連線遠端主機的帳密
cmdkey /add:PC01 /user:user01 /pass:user01

REM 設定連線遠端主機的分享印表機
rundll32 printui.dll,PrintUIEntry /in /z /q /n "\\PC01\EPSON LQ-310 ESCP2"

REM 設定 1/2 Letter 紙張,寬21.59cm,高13.97cm
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Forms" /v "1/2 Letter"  /t REG_BINARY /d "5c4b0300b421020000000000000000005c4b0300b42102005e00000000000000" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Print\Forms\1/2 Letter" /v "FormKeyword" /t REG_BINARY /d "7b39304333373645302d334541322d344530312d424433422d3045413030434245463837347d00" /f

REM 重新啟動列印服務
net stop spooler
net start spooler

REM 開啟控制台-裝置和印表機
control printers

REM 開啟列印伺服器內容
rundll32 printui.dll,PrintUIEntry /s

REM 跳出安裝完成訊息
msg /W %username% "Install OK"

2015年9月15日 星期二

CMD 使用 FOR 取得檔案日期屬性,星期幾

以下CMD指令為,判斷當前目錄下 所有7z壓縮,且建立日期為週一的檔案,做移動到特定目錄。

因為以下指令會需要星期幾的屬性,所以需先至以下地方,修改日期屬性
控制台→地區→其它設定→日期→簡短日期
將預設 YYYY/MM/dd 修改為 YYYY/MM/dd ddd

REM 設定移動的目的地
SET _PATH="E:\BACKUP"

REM 以下為同一行指令,為了方便修改和查看,用 ^ 做換行的動作。
FOR /F "delims==" %%a IN ('dir /s /b *.7z') DO ^
FOR /F "tokens=2" %%b IN ("%%~ta") DO ^
IF "%%b"=="週一" ^
FOR /F "tokens=2 delims=:" %%c IN ("%%a") DO ^
move %%a %_PATH%%%c

2014年1月15日 星期三

強制刪除目錄或檔案

有時會遇到檔案因為鎖定或其它原因不能刪除。
此時只要將以下指令存成.bat或.cmd的批次檔
再將檔案或目錄拖至批次檔,就可以刪除了。
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
指令說明如下:
DEL 刪除檔案,命令參數: del /?
/F:表示強制刪除
/A:選擇檔案的屬性
/Q:安靜模式,不會跳出提示訊息就刪除
/S:連帶刪除子目錄下的檔案


RD 刪除目錄,命令參數: rd /?
/Q:安靜模式,不會跳出 提示訊息就刪除
/S:連帶刪除子目錄下的檔案


為避免不小心誤刪,以下是再次確認的批次檔範例
一樣存成.bat或.cmd批次檔,再將要強制刪除的目錄或檔案拖入即可。
 @echo off

echo.
echo.
echo **************************************
echo.
echo         強制刪除目錄和檔案:
echo.
echo **************************************
echo.
echo.
echo.

CHOICE /C YN /M "刪除請按 Y,否請按 N。"

if errorlevel 2 goto no
if errorlevel 1 goto yes

:yes
REM 強制刪除目錄和檔案
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
exit

:no
exit

2013年4月17日 星期三

用Win7安裝光碟進行4K對齊,和磁碟分割

以下方式可以用win7內建的指令工具進行磁碟分割,並進行4K對齊。
操作前,請先進BIOS檢查SATA支援模式是否為AHCI模式,如不是請先進行修改。
將SATA模式設為AHCI,可獲得較好的讀寫效能

此例假設只有一個硬碟,而且磁碟中無要保留的資料(會刪除所有磁區中的資料)。
於選擇安裝磁碟的畫面中按鍵盤上的Shift+F10
於命令提示字元畫面中輸入


diskpart
select disk 0
clean
cre par pri size=4096
active
cre par pri
exit
exit

上面的指令代表的是
1.進入磁碟管理工具
2.選擇 磁碟 0
3.清除所有磁區(會刪除所有磁區中的資料)
4.建立 分割區 類型:主要 大小=4096MB
5.設定為活動
6.建立 分割區 類型:主要 大小=所有剩餘容量
7.離開磁碟管理工具
8.離開命令提示字元

然後就可以在選擇安裝磁碟的畫面,點擊"重新整理"
選擇磁碟0 磁碟分割1 ,進行安裝了

2012年10月15日 星期一

裝置管理員,移除不存在的裝置

在裝置管理員要移除舊的不存在的網卡,但出現"無法解除安裝裝置,裝置可能是開機必須的裝置"


可能該相關的裝置未正確移除,需先移其相關驅動,但在裝置管理員下又看不到。可用以下兩行命令在CMD視窗下執行

set devmgr_show_nonpresent_devices=1 (秀出隱藏驅動)
start devmgmt.msc (開啟裝置管理員)

再點選『顯示隱藏裝置』,刪除相關的驅動即可。

2012年8月27日 星期一

防止Skype4.0版以上,跳出版本更新提示

Skype常常在更新版本,可是有時候使用者並不需要新版本,但每次一啟動就會提示更新,實在是很煩人的事。

只要使用下列兩個指令,就可以暫時讓skype更新提示不要跳出來了。
XP,Win7都適用

del %temp%\SkypeSetup.exe /Q
mkdir  %temp%\SkypeSetup.exe
attrib +r +a +s +h %temp%\SkypeSetup.exe

解釋如下:
1.刪除以下載的Skype安裝檔
2.建立同檔名的目錄,以防止Skype再次下載更新檔。
3.把 SkypeSetup.exe 屬性設成唯獨、保存、系統、隱藏,避免被誤刪。

舊版Skype(3.8)以下,可直接由進階設定修改更新提示。但也可適用以上方式。

2012年8月23日 星期四

DOS以BAT檔指令去判斷作業系統

以Bat的方式判斷作業系統
引用來源:http://forum.twbts.com/thread-2463-1-1.html

DOS以BAT檔指令去判斷作業系統

if "%OS%" == "Windows_NT"
OS為Windows NT /2000/ XP
不然則為 Windows 95/98/Me


%WinDir%
C:\Windows (Windows 95/98/Me/XP)
C:\WINNT (Windows NT/2000)

----------------------------------------------------

if "%OS%" == "Windows_NT"
goto RunNT2kXP
else
goto RunWin9xMe

:RunNT2kXp
.......cmd......
goto end

:RunWin9xMe
.......cmd....
goto end

:end

----------------------------------------------------

@echo off
@rem OS.bat

@rem Windows 2000 (NT 5.0)
@rem Windows XP (NT 5.1)
@rem Windows 2003 (NT 5.2)
@rem Windows Vista/2008 (NT 6.0)
@rem Windows 7/2008 R2 (NT 6.1)

REM detect Windows NT vs. 9x
echo %OS%
if "%OS%" == "Windows_NT" goto NT
goto Unsupport

:NT
REM determine build of NT (if necessary)
for /f "delims=[] tokens=2 " %%i in ( 'ver ') do set MyVer=%%i
for /f "tokens=2 " %%i in ( 'echo %MyVer% ') do set MyVer=%%i
for /f "tokens=1,2,3 delims=. " %%i in ( 'echo %MyVer% ') do (
set MajorVer=%%i
set MinorVer=%%j
set BuildNum=%%k
)

echo MyVer = %MyVer%
echo MajorVer == %MajorVer%
echo MinorVer == %MinorVer%
echo BuildNum == %BuildNum%

if "%MajorVer%" == "5" goto NT5
if "%MajorVer%" == "6" goto NT6

:NT5

@echo NT5
if "%PROCESSOR_ARCHITECTURE%" == "x86" goto NT5x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto NT5x64
goto UnSupport

:NT5x86

@echo Windows 2000/XP/2003 x86
@rem do something
goto OK

:NT5x64

@echo Windows 2000/XP/2003 x64
@rem do something
goto OK

:NT6

if "%SESSIONNAME%" == "Console" goto NoAdmin
if "%PROCESSOR_ARCHITECTURE%" == "x86" goto NT6x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto NT6x64
goto UnSupport

:NT6x86

@echo Windows Vista/2008/7/2008 R2 x86
@rem do something
goto OK

:NT6x64

@echo Windows Vista/2008/7/2008 R2 x64
@rem do something
goto OK

:NoAdmin

@echo Please run "Command Prompt" as Administrator !
goto exit

:UnSupport

@echo OS is not supported !
goto exit

:OK

@rem do something

:exit

pause

2012年8月6日 星期一

CMD 匯入REG檔

當在CMD下要匯入REG檔時,總是會跳出提示視窗
那如果不要跳出視窗的話,只要用下列的命令+參數即可達到
REGEDIT.EXE /S 登錄檔名.REG

2012年5月2日 星期三

使用命令提示字元,啟用管理者帳號或修改密碼

在命令提示字元中,使用以下命令來啟用 Administrator 帳戶,輸入後按 [Enter] 執行。
net user administrator /active:yes

 在命令提示字元中,使用以下命令來修改 Administrator 帳戶的密碼,輸入後按 [Enter] 執行。
 net user administrator 12345678
以上12345678就是administrator的密碼

  net user administrator *
視窗會出現提示輸入密碼或再次確認密碼的問答

使用批次檔和7zip排期備份資料

CLS
@ECHO off
ECHO.
ECHO.
ECHO          ===== 正在備份資料 =====

REM 取得日期,格式YYYYMMDD。
SET _MyDate=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

REM 設定備份目的路徑。**以下存放路徑、目錄、存取權限、檔案名稱,需先手動確認。**
SET _DB_Backup_PATH=\\192.168.1.100\Backup
SET _FileName=CB1_db_%_MyDate%0200
SET _Local_Log_PATH=.


REM 寫入記錄檔
echo ===開始備份 %_MyDate% %time% === >> %_Local_Log_PATH%\DB_Backup_log.txt
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt


REM 使用7z加壓縮,並寫入記錄檔。
7z a -scsUTF-8 %_FileName%.7z %_FileName%.bak
IF EXIST %_FileName%.7z (ECHO 檔案%_FileName%於%time%壓縮成功 >> %_Local_Log_PATH%\DB_Backup_log.txt
)ELSE (ECHO 檔案%_FileName%於%time%壓縮失敗 >> %_Local_Log_PATH%\DB_Backup_log.txt)
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt


REM 複製所有.7z且為保存屬性的檔案,到備份資料夾,清除保存屬性,並寫入記錄檔。
XCOPY /M /D /I /Y /F  *.7z %_DB_Backup_PATH% >> %_Local_Log_PATH%\DB_Backup_log.txt
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt


REM 刪除沒有保存屬性的壓縮檔,並寫入記錄檔。
DEL /S /A-A *.7z >> %_Local_Log_PATH%\DB_Backup_log.txt
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt

REM 寫入記錄檔
echo ===備份完畢 %_MyDate% %time% ===>> %_Local_Log_PATH%\DB_Backup_log.txt
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt
echo. >> %_Local_Log_PATH%\DB_Backup_log.txt
xcopy /Y %_Local_Log_PATH%\DB_Backup_log.txt %_DB_Backup_PATH%

ECHO.
ECHO.          ===== 備份完畢 =====
ECHO.
ECHO.